Hoàng Web

Thiết Kế Website WordPress

  • Kho giao diện
  • Dịch Vụ
    • Thiết kế web giá rẻ
    • Thiết kế website WordPress
    • Hosting Miễn Phí 100GB
    • Tích hợp thanh toán MoMo, ViettelPay, Vietcombank, MB..
    • Tối ưu Google PageSpeed
    • Sửa lỗi nâng cấp website
    • Viết plugin WordPress
    • Code Tool theo yêu cầu
  • Bảng giá
  • Quy trình làm việc
  • Giới thiệu
  • Liên Lạc
Trang chủ » Wordpress » Thay đổi hiển thị sidebar trong WordPress

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

Thứ Năm, 03/07/2014 by Hoàng Quách

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

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

dynamic sidebar wordpress

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'),
        'id'    => '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 gọi là sidebar và cột phải là nội dung hoặc cột trái là nội dung và cột phải 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:

<div id="secondary" class="widget-area"></div>

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 nhiên 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 này thật dễ dàng. Hãy xem ví 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]) &amp;&amp; is_user_logged_in() &amp;&amp; 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 đơn giản 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 những 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 nay có một vài plugin có thể giúp bạn làm điều này một cách dễ dàng. Xem hướng 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 các page khác nhau, tránh sự nhàm chán và tăng tính linh hoạt cho website.

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook

  • shares
  • Facebook
  • Facebook Messenger
  • Gmail
  • Viber
  • Skype

Chuyên mục: Wordpress Tìm kiếm: wordpress sidebars, wordpress Templates

Tôi giúp gì cho bạn?

HOÀNG WEB

Địa chỉ: Tây Sơn, Phường Quang Trung, Quận Đống Đa, Hà Nội

Hotline: 0987 342 124 – 0868 292 303 (8h:00 – 21h:00)

Email: [email protected]

Website: www.hoangweb.com

KẾT NỐI VỚI TÔI

  • Facebook
  • GitHub
  • YouTube

SẢN PHẨM

  • Plugin Thanh Toán Quét Mã QR Code Tự Động
  • WP2Speed – Tối ưu Google Speed
  • 23WebHost – Hosting Miễn Phí 100GB

LIÊN KẾT

  • Có nên thuê thiết kế website giá rẻ?
  • Hướng dẫn thanh toán
  • Chính sách hoàn tiền
  • Trung tâm hỗ trợ

Copyright © 2023 | All rights reserved | HOANG WEB
Mọi hình thức sao chép nội dung trên website này mà chưa được sự đồng ý đều là trái phép.