Widget của WordPress trở nên thật đơn giản với người dùng khi mọi người chỉ cần kéo và thả vào vị trí mà mình muốn bất kì nơi nào tạo vị trí trong theme có thể là sidebar, footer hay trên header... Trong bài viết này bạn sẽ học được cách tạo widget WordPress của riêng đơn giản của riêng mình.

Trong hướng dẩn này, chúng ta sẽ tạo một wiget đơn giản mà chỉ xuất hiện câu Hello, World! .Hãy nhìn vào đoạn code và dán nó vào file function.php hoặc trong plugin của bạn.
[php]
// Tạo widget với class là smw_widget
class smw_widget extends WP_Widget {
function __construct() {
parent::__construct(
// ID widget của bạn
'smw_widget',
// Tên widget sẽ xuất hiện trong giao diện người dùng
__('Sacmauweb Widget', 'smw_widget_domain'),
// Miêu tả của widget
array( 'description' => __( 'Miêu tả của widget', 'smw_widget_domain' ), )
);
}
// Xuất dữ liệu ra bên ngoài widget
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] );
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];
// Đây là nơi chạy code và hiển thị ra vị trí widget của bạn (ở đây sẽ hiển thị dòng "Hello, World!")
echo __( 'Hello, World!', 'smw_widget_domain' );
echo $args['after_widget'];
}
// Tạo form option cho widget
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ];
}
else {
$title = __( 'New title', 'smw_widget_domain' );
}
// Tạo form widget
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<?php
}
// Lưu dữ liệu khi đã nhập vào widget
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
} // Kết thúc smw_widget
// Đăng ký và load widget
function smw_load_widget() {
register_widget( 'smw_widget' );
}
add_action( 'widgets_init', 'smw_load_widget' );
?>
[/php]
Bây giờ hãy vào
Appearance »Widget Kéo thả Sacmauweb Widget vào trong thanh bên của bạn, chỉnh sửa title, save và xem kết quả ngoài trang web.
Kết quả trang admin:

Kết quả khi chạy trên trang web:

Xem thêm : http://stackoverflow.com/questions/5247302/php-namespace-5-3-and-wordpress-widget/5247436#5247436
Nếu bạn có thắc mắc hãy comment bên dưới.
Từ khóa: widget
Cho mình hỏi về plugin WP một chút. Bạn có biết cái plugin nào tương tự cái block newcenter của nukeviet không (Block hiển thị slide tin mới và bài viết tiêu điểm). Chỉ mình với. Giống cái trang này: kienthucphunu.com
Thank
Bạn thử dùng plugin WP Slideshow Posts nhé.