Code tạo sidebar WordPress

Code tạo sidebar WordPress

18/11/2022 - 128

Cách tạo một widget có thể hơi phức tạp nhưng để tạo một sidebar thì không phức tạp như vậy, quy trình nó dễ hơn rất nhiều vì bạn chỉ cần viết vài đoạn code cơ bản. Chỉ cần hiểu rõ cấu trúc theme WordPress, bạn sẽ có thể chèn sidebar vào bất cứ đâu.

Nào, nếu bạn cần biết cách tự tạo sidebar cho theme của mình thì hãy đọc tiếp phần bên dưới, rất ngắn gọn và dễ hiểu.

Bước 1. Đăng ký sidebar

Bước này nghĩa là ta sẽ xác định tạo một sidebar trong theme, sau khi làm xong bước này bạn sẽ thấy sidebar hiển thị bên trong Appearance >> Widgets.

Hãy chèn đoạn này vào file functions.php của theme:

register_sidebar(array(
    'name' => 'Block after content',
    'id' => 'block-after-content',
    'description' => 'Khu vực sidebar hiển thị dưới mỗi bài viết',
    'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    'after_widget' => '</aside>',
    'before_title' => '<h1 class="widget-title">',
    'after_title' => '</h1>'
));

Sau khi đăng ký widget mới thì trong phần Appearance -> Widget sẽ có thêm 1 widget area mới là Block after content.

Hãy bỏ một vài widget ví dụ vào sidebar trước nhé.

Bước 2. Hiển thị sidebar vào theme

Ngay sau khi đã có sidebar trong Appearance -> Widget, bây giờ chúng ta sẽ làm một bước cuối cùng nữa đó chính là cho sidebar vừa tạo ở trên hiển thị ra theme.

Để hiển thị, ta sẽ sử dụng một hàm trong WordPress tên là dynamic_sidebar(). Bạn mở file bất kỳ trong theme ra và chèn đoạn dưới đây vào.

<?php dynamic_sidebar('block-after-content'); ?>

Trong đó, tham số bên trong chính là ID của sidebar mà bạn đã tạo ở bước 1. Hãy nhớ rằng bạn có thể đặt bất kỳ đoạn nào trong theme, thường là người ta đặt trong file sidebar.php. Bạn cũng có thể đặt vào file single.php nếu muốn hiển thị sidebar ngay bên dưới hoặc trên bài viết.

Nếu bạn muốn chuyên nghiệp hơn thì có thể sử dụng thêm một hàm khác kèm theo mang tên là is_activate_sidebar() để kiểm tra xem sidebar cần gọi có hoạt động không (có chứa widget không).

<?php if ( is_active_sidebar( 'block-after-content' ) ) : ?>
        <?php dynamic_sidebar( 'block-after-content' ); ?>
<?php endif; ?>

Chúc các bạn thành công!

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết liên quan
Contact Me on Zalo