Lấy dữ liệu widgets đã đăng ký trên sidebar trong wordpress

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Lấy dữ liệu widgets đã đăng ký trên sidebar trong wordpress

Làm sao để lấy dữ liệu của các widgets bạn nhập trong wordpress admin. Widget được hiển thị trực tiếp trên sidebar có chứa nó bởi hàm dynamic_sidebar .
Giả sử trong file functions.php wordpress theme của bạn đăng ký sidebar sử dụng cho website.

 register_sidebar( array( 'name' =>  __( 'Left Sidebar', 'twentytwelve' ), 'sidebar-1', 'description' =>  __( 'sidebar 1', 'twentytwelve' ), 'before_widget' =>  ' 
', 'after_widget' => '
', 'before_title' => '
', 'after_title' => '
', ) );

Sidebar này có ID “sidebar-1”, và để chèn các widgets của sidebar-1 bạn gọi hàm sau trong sidebar.php:

 dynamic_sidebar('sidebar-1');  

Đa phần dữ liệu như post-type, taxonomy category, comment..đều cấp phép truy cập thông qua hàm tiện ích get_option . Một số dữ liệu quy mô nhỏ bạn sẽ nhập trực diện trong wordpress admin thí dụ widget, category, taxonomy và chúng thuộc về dữ liệu cài đặt của wordpress mà chúng ta có thể truy cập với hàm get_option.

Để lấy dữ liệu của 1 widget đã hiện diện ở sidebar, trước tiên hãy xác định tên widget. Để thực hiện, bạn chuột phải vào địa thế widget trên website (frontend), chọn kiểm tra thành phần (inspect Element).
lấy dữ liệu widget wordpress

Tên widget chính là giá trị của %2$s trong phần đăng ký sidebar nằm ngay file functions.php tại hàm register_sidebar .

 register_sidebar( array( ...... 'before_widget' =>  ' 
', ...... ) );

Như bạn thấy ở hình trên, widget mình demo là “widget_yahoo_skype_status”.
Sau khi xác định tên widget cần lấy dữ liệu, bạn cũng đều có thể lấy dữ liệu cài đặt của widget với hàm get_option rồi.

 get_option("widget_yahoo_skype_status");  

Hàm Trả về mảng giống thế này:

 array(2) { [2]=>  array(72) { ["title"]=>  string(17) "Hỗ trợ Online" ["skin"]=>  string(7) "default" ["nick_1"]=>  string(15) "quachhoang_2005" ["is_show_name_1"]=>  string(1) "1" ["nick_name_1"]=>  string(7) "MrHoang" ["phone_1"]=>  string(11) "46576576878" ["nick_type_1"]=>  string(5) "yahoo" ["yahoo_status_type_1"]=>  string(1) "0" ["skype_status_type_1"]=>  string(12) "smallclassic" ["nick_2"]=>  string(7) "htx_113" ["is_show_name_2"]=>  string(1) "1" ["nick_name_2"]=>  string(7) "htx_113" ["phone_2"]=>  string(0) "" ["nick_type_2"]=>  string(5) "yahoo" ["yahoo_status_type_2"]=>  string(1) "0" ["skype_status_type_2"]=>  string(12) "smallclassic" ["nick_3"]=>  string(7) "htx_117" ["is_show_name_3"]=>  string(1) "1" ["nick_name_3"]=>  string(7) "htx_117" ["phone_3"]=>  string(0) "" ["nick_type_3"]=>  string(5) "yahoo" ["yahoo_status_type_3"]=>  string(1) "0" ["skype_status_type_3"]=>  string(12) "smallclassic" ["nick_4"]=>  string(9) "kd.eropi3" ["is_show_name_4"]=>  string(1) "1" ["nick_name_4"]=>  string(9) "kd.eropi3" ["phone_4"]=>  string(0) "" ["nick_type_4"]=>  string(5) "yahoo" ["yahoo_status_type_4"]=>  string(1) "0" ["skype_status_type_4"]=>  string(12) "smallclassic" ["nick_5"]=>  string(7) "htx_115" ["is_show_name_5"]=>  string(1) "1" ["nick_name_5"]=>  string(7) "htx_115" ["phone_5"]=>  string(0) "" ["nick_type_5"]=>  string(5) "yahoo" ["yahoo_status_type_5"]=>  string(1) "0" ["skype_status_type_5"]=>  string(12) "smallclassic" ["nick_6"]=>  string(0) "" ["is_show_name_6"]=>  string(1) "1" ["nick_name_6"]=>  string(0) "" ["phone_6"]=>  string(0) "" ["nick_type_6"]=>  string(5) "yahoo" ["yahoo_status_type_6"]=>  string(1) "0" ["skype_status_type_6"]=>  string(12) "smallclassic" ["nick_7"]=>  string(0) "" ["is_show_name_7"]=>  string(1) "1" ["nick_name_7"]=>  string(0) "" ["phone_7"]=>  string(0) "" ["nick_type_7"]=>  string(5) "yahoo" ["yahoo_status_type_7"]=>  string(1) "0" ["skype_status_type_7"]=>  string(12) "smallclassic" ["nick_8"]=>  string(0) "" ["is_show_name_8"]=>  string(1) "1" ["nick_name_8"]=>  string(0) "" ["phone_8"]=>  string(0) "" ["nick_type_8"]=>  string(5) "yahoo" ["yahoo_status_type_8"]=>  string(1) "0" ["skype_status_type_8"]=>  string(12) "smallclassic" ["nick_9"]=>  string(0) "" ["is_show_name_9"]=>  string(1) "1" ["nick_name_9"]=>  string(0) "" ["phone_9"]=>  string(0) "" ["nick_type_9"]=>  string(5) "yahoo" ["yahoo_status_type_9"]=>  string(1) "0" ["skype_status_type_9"]=>  string(12) "smallclassic" ["nick_10"]=>  string(0) "" ["is_show_name_10"]=>  string(1) "1" ["nick_name_10"]=>  string(0) "" ["phone_10"]=>  string(0) "" ["nick_type_10"]=>  string(5) "yahoo" ["yahoo_status_type_10"]=>  string(1) "0" ["skype_status_type_10"]=>  string(12) "smallclassic" } ["_multiwidget"]=>  int(1) }  

Thật tuyệt vời phải không. Không nhất thiết cần sử dụng sidebar trên website ,bạn có thể lấy bất cứ dữ liệu của widget nào mà bạn có thêm trong sidebar của wordpress admin.

Bạn cũng có thể có thể lấy thông tin dữ liệu của toàn bộ widget mà lưu tại bảng wp_options. Sử dụng wpdb, tìm tin tức widget bắt đầu bằng ký tự prefix “widget_”.

 $wpdb-> get_results("SELECT * FROM {$wpdb-> options} WHERE option_name LIKE 'widget_%')  

Chúc bạn thành công.

Hãy cho mình biết suy nghĩ của bạn trong phần bình luận bên dưới bài viết này. Hãy theo dấu kênh chia sẻ kiến thức WordPress của TopVn trên Twitter và Facebook

Bài viết Lấy dữ liệu widgets đã đăng ký trên sidebar trong wordpress được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang