Thay đổi hiển thị sidebar trong WordPress

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Thay đổi hiển thị sidebar trong WordPress

Thay đổi động sidebar tùy theo template

Trước tiên bạn đăng ký sidebars với action “wigets_init”.

 //Register a secondary sidebar with action hook widgets_init. add_action('widgets_init', 'wpse64492_register'); function wpse64492_register() { register_sidebar(array( 'name' => __('Logged In Sidebar', 'wpse64492'), 'logged-in' )); }  

Thông thường bố cục của trang web gồm có 4 phần:
-phần đầu header
-phần thân gồm: có cột trái coi là sidebar và cột phải là nội dung hoặc cột trái là nội dung và cột cần là sidebar.
-phần cuối footer.
Để tạo sidebar chúng ta có template sidebar.php , sau đó sử dụng hàm get_sidebar() để include phần sidebar vào page template.
Khám phá đoạn code trong sidebar.php trong theme twentyeleven:

   

Trong đoạn code sidebar template trên lấy nội dung của sidebar-1 được tạo trong Appearance-> widgets. Xuyên suốt các trang có sử dụng sidebar là cố định “sidebar-1” tuy vậy bạn có thể điều kiện sidebar để thay đổi, tăng tính linh hoạt cho nội dung website. Chúng ta sẽ tạo thêm sidebars và thay đổi bố cục sidebars theo ý muốn. Sử dụng những cách sau đây.

Điều khiển sidebar trong wordpress

WordPress cung cấp hook sidebars_widgets để làm điều đó thật dễ dàng. Hãy xem thí dụ sau đây:

 add_filter('sidebars_widgets', 'wpse64492_switch'); function wpse64492_switch($widgets) { if(is_admin()) return $widgets; $key = 'sidebar-1'; // the sidebar you want to change! if(isset($widgets[$key]) && is_user_logged_in() && isset($widgets['logged-in'])) $widgets[$key] = $widgets['logged-in']; return $widgets; }  

Biến $widgets chứa các sidebars được đăng ký bởi hàm register_sidebar đặt trong /functions.php , bạn có thể thay thế sidebar khác với điều kiện theo ý bạn.
Hoặc cách dễ dàng hơn, là custom hàm hàm dynamic_sidebar theo ngụ ý sử dụng.

 function mytheme_sidebar($name) { $name = apply_filters('mytheme_sidebar', $name);echo $name; dynamic_sidebar($name); } add_filter('mytheme_sidebar', 'mytheme_custom_sidebar'); function mytheme_custom_sidebar($name) { return is_user_logged_in() ? $name:'sidebar2'; }  

Như vậy thay vì sử dụng dynamic_sidebar('sidebar-name'); thì sử dụng mytheme_sidebar('sidebar-name');

Bài viết này dành cho các ai am hiểu về lập trình WordPress, và sẽ khó cho người mới tiếp cận. Tuy nhiên, hiện giờ có 1 vài plugin có thể giúp bạn làm điều đó một cách dễ dàng. Xem chỉ dẫn chọn Sidebar cho trang với WooSidebars

Hi vọng bài viết này giúp bạn sử dụng được nhiều sidebar trong những page khác nhau, tránh sự tẻ nhạt và tăng tính linh hoạt cho website.

Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và hãy nhớ chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng cũng đều có thể theo dõi blog này trên Twitter và Facebook

Bài viết Thay đổi hiển thị 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