Trang chủ WordpressWordpress Development Cách tự tạo thêm sidebar cho theme

Cách tự tạo thêm sidebar cho theme

bởi Thạch Phạm
8 bình luận 5406 views
Khuyến mãi hosting

Các bạn đã từng đọc qua bài tự tạo widget sẽ có câu hỏi làm thế nào để tạo thêm nhiều khu vực hiển thị các widget, mà ta thường gọi vắn tắt là sidebar.

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; ?>

Tra cứu: Các hàm liên quan đến Sidebar

Bài viết được đóng góp bởi độc giả tên Đình Chi.
8 bình luận

Có thể bạn quan tâm

0 0 vote
Article Rating
guest
8 Comments
mới nhất
cũ nhất đánh giá nhiều
Inline Feedbacks
View all comments
Duc

Đang cần bài này. Thanks you!

Mr Viên

Dear Thạch!

Mình thêm widgets Sidebar như hướng dẫn của bạn thành công nhưng khi thêm 3 widgets hiển thị theo cột cho footer lại không được, mà nó hiển thị theo hàng. Bạn có thể giúp mình không! Cảm ơn nhiều ạ!

theanh

Chào anh, cho em hỏi là mình muốn một side bar hiển thị vào một khu vực nhất định thì làm thế nào ạ

ĐỖ VŨ

chào Thầy!
Cho em hỏi. muốn tìm và gáng link. cho phần đăng nhập/ đăng ký trong trang: http://demo2.xehoiviet.com như thế nào: phần đăng nhập/ đăng ký đó có trong : Giao diện/ tùy chỉnh/ header/ top bar login enable.
khi tích vào top bar login enable thì hiển thị phần đăng nhập/ đăng ký. mà e tìm k ra để cho nó cái link của trang đăng nhập/đăng ký

Phan Thị Ngọc Ánh

Em chào thầy!
Em đang trong quá trình đưa sản phẩm lên website nhưng em gặp phải vấn đề là có một số sản phẩm giá thường xuyên thay đổi nên em muốn để giá call thì làm như thế nào ạ?
( chỉ có một số sản phẩm thôi ạ, em đang làm trên woocommerce tích hợp wordpress ạ )
Nhờ thầy chỉ giúp em với ạ. Em xin cảm ơn ạ!
Website: http://autothegioi.com/

Phan Thị Ngọc Ánh

Dạ vâng ạ, em cảm ơn thầy ạ

8
0
Would love your thoughts, please comment.x
()
x