Hiển thị sticky posts mới nhất WordPress

3 tháng ago, Hướng dẫn WordPress, 2 Views
Hiển thị sticky posts mới nhất WordPress

Giới Thiệu Về Sticky Posts Trong WordPress

Trong WordPress, sticky posts (bài viết dính) là một tính năng cho phép bạn “dán” một hoặc nhiều bài viết lên đầu trang chủ blog của bạn. Điều này có nghĩa là những bài viết này sẽ luôn hiển thị ở vị trí đầu tiên, bất kể khi nào bạn đăng bài viết mới. Sticky posts rất hữu ích để làm nổi bật những nội dung quan trọng, thông báo đặc biệt, hoặc những bài viết evergreen mà bạn muốn độc giả nhìn thấy đầu tiên khi họ truy cập trang web của bạn.

Mặc định, WordPress hiển thị sticky posts theo thứ tự thời gian đăng bài. Tuy nhiên, đôi khi bạn có thể muốn hiển thị sticky posts theo thứ tự thời gian cập nhật mới nhất. Bài viết này sẽ hướng dẫn bạn cách thực hiện điều đó.

Tại Sao Cần Hiển Thị Sticky Posts Mới Nhất?

Việc hiển thị sticky posts mới nhất mang lại nhiều lợi ích:

  • Luôn cập nhật nội dung quan trọng: Đảm bảo rằng độc giả luôn nhìn thấy những thông tin mới nhất bạn muốn truyền tải.
  • Tăng tương tác với nội dung mới: Khuyến khích người dùng đọc và tương tác với những bài viết bạn vừa cập nhật.
  • Cải thiện trải nghiệm người dùng: Mang đến cho người dùng thông tin quan trọng và hữu ích nhất một cách nhanh chóng.

Các Phương Pháp Hiển Thị Sticky Posts Mới Nhất

Có nhiều cách để hiển thị sticky posts mới nhất trong WordPress. Chúng ta sẽ xem xét các phương pháp phổ biến nhất:

1. Sử Dụng Code Trong File functions.php

Đây là phương pháp phổ biến và linh hoạt nhất. Bạn cần chỉnh sửa file functions.php của theme (hoặc child theme) của bạn. Hãy cẩn thận khi chỉnh sửa file này, vì một lỗi nhỏ có thể làm hỏng trang web của bạn. Luôn sao lưu file trước khi thực hiện bất kỳ thay đổi nào.

Dưới đây là đoạn code bạn có thể sử dụng:


function modify_sticky_posts( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $sticky_posts = get_option( 'sticky_posts' );

        if ( ! empty( $sticky_posts ) ) {
            $query->set( 'post__in', $sticky_posts );
            $query->set( 'orderby', 'modified' );
            $query->set( 'order', 'DESC' );
        }
    }
}
add_action( 'pre_get_posts', 'modify_sticky_posts' );

Giải thích code:

  • modify_sticky_posts: Tên hàm được tạo ra để chỉnh sửa query.
  • $query->is_home() && $query->is_main_query(): Kiểm tra xem query có phải là query cho trang chủ và là main query hay không. Điều này đảm bảo code chỉ chạy trên trang chủ.
  • get_option( 'sticky_posts' ): Lấy danh sách các ID của các sticky posts.
  • $query->set( 'post__in', $sticky_posts ): Đặt query để chỉ lấy các post có ID nằm trong danh sách sticky posts.
  • $query->set( 'orderby', 'modified' ): Sắp xếp các sticky posts theo thời gian cập nhật (modified).
  • $query->set( 'order', 'DESC' ): Sắp xếp theo thứ tự giảm dần (tức là bài viết mới nhất sẽ hiển thị đầu tiên).
  • add_action( 'pre_get_posts', 'modify_sticky_posts' ): Thêm hàm modify_sticky_posts vào action pre_get_posts, cho phép bạn chỉnh sửa query trước khi nó được thực thi.

Cách sử dụng:

  1. Truy cập vào WordPress dashboard.
  2. Đi đến “Appearance” -> “Theme Editor”.
  3. Tìm và chọn file functions.php của theme bạn đang sử dụng. Nếu bạn đang sử dụng một theme con, hãy chỉnh sửa file functions.php của theme con đó.
  4. Dán đoạn code trên vào cuối file functions.php.
  5. Nhấn nút “Update File”.

Sau khi thực hiện các bước trên, các sticky posts của bạn sẽ được hiển thị theo thứ tự thời gian cập nhật mới nhất trên trang chủ.

2. Sử Dụng Plugin

Nếu bạn không muốn chỉnh sửa code trực tiếp, bạn có thể sử dụng một plugin để quản lý sticky posts. Có một số plugin miễn phí và trả phí có sẵn trên WordPress repository.

Ưu điểm của việc sử dụng plugin:

  • Dễ cài đặt và sử dụng.
  • Không cần chỉnh sửa code trực tiếp.
  • Thường cung cấp các tùy chọn cấu hình bổ sung.

Một số plugin hữu ích:

  • Sticky Posts – WordPress Plugin: Plugin đơn giản giúp bạn quản lý sticky posts dễ dàng hơn.
  • Better Recent Posts Widget: Cho phép bạn hiển thị các bài viết gần đây (bao gồm cả sticky posts) với nhiều tùy chọn tùy chỉnh.

Cách sử dụng plugin:

  1. Truy cập vào WordPress dashboard.
  2. Đi đến “Plugins” -> “Add New”.
  3. Tìm kiếm plugin bạn muốn sử dụng.
  4. Nhấn nút “Install Now” và sau đó “Activate”.
  5. Cấu hình plugin theo hướng dẫn của nhà phát triển.

Sau khi cài đặt và kích hoạt plugin, bạn có thể cấu hình nó để hiển thị sticky posts theo thứ tự thời gian cập nhật mới nhất.

3. Chỉnh Sửa Template Files Trực Tiếp

Phương pháp này đòi hỏi bạn phải có kiến thức về PHP và WordPress theme development. Bạn cần tìm file template hiển thị trang chủ của bạn (thường là index.php, home.php, hoặc front-page.php) và chỉnh sửa code để lấy và hiển thị sticky posts theo thứ tự bạn muốn.

Ví dụ:


<?php
$sticky = get_option( 'sticky_posts' );
rsort( $sticky ); // Sắp xếp sticky posts theo thứ tự giảm dần
$args = array(
    'posts_per_page' => 5,
    'post__in'  => $sticky,
    'ignore_sticky_posts' => 1,
    'orderby' => 'modified',
    'order' => 'DESC'
);
$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ) {
    echo '<ul>';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
    }
    echo '</ul>';
    wp_reset_postdata();
} else {
    echo 'Không có sticky posts.';
}
?>

Giải thích code:

  • get_option( 'sticky_posts' ): Lấy danh sách các ID của các sticky posts.
  • rsort( $sticky ): Sắp xếp mảng $sticky theo thứ tự giảm dần (điều này không thực sự cần thiết trong trường hợp này vì chúng ta sẽ sắp xếp lại bằng WP_Query).
  • WP_Query: Tạo một query mới để lấy các sticky posts.
  • 'posts_per_page' => 5: Hiển thị tối đa 5 sticky posts.
  • 'post__in' => $sticky: Chỉ lấy các post có ID nằm trong danh sách sticky posts.
  • 'ignore_sticky_posts' => 1: Bỏ qua việc WordPress tự động “dán” các bài viết này.
  • 'orderby' => 'modified': Sắp xếp theo thời gian cập nhật.
  • 'order' => 'DESC': Sắp xếp theo thứ tự giảm dần.

Lưu ý: Phương pháp này yêu cầu bạn phải có kiến thức về WordPress theme development và hiểu rõ về cấu trúc của theme bạn đang sử dụng. Hãy cẩn thận khi chỉnh sửa template files và luôn sao lưu trước khi thực hiện bất kỳ thay đổi nào.

Lời Khuyên Quan Trọng

  • Sao lưu trang web của bạn: Trước khi thực hiện bất kỳ thay đổi nào, hãy sao lưu toàn bộ trang web của bạn (bao gồm cả database và files). Điều này giúp bạn dễ dàng khôi phục lại trang web nếu có sự cố xảy ra.
  • Sử dụng child theme: Nếu bạn muốn chỉnh sửa theme, hãy sử dụng child theme. Điều này giúp bạn tránh mất các thay đổi khi theme gốc được cập nhật.
  • Kiểm tra kỹ lưỡng: Sau khi thực hiện bất kỳ thay đổi nào, hãy kiểm tra kỹ lưỡng trang web của bạn để đảm bảo mọi thứ hoạt động bình thường.
  • Tham khảo tài liệu: Luôn tham khảo tài liệu chính thức của WordPress và các nguồn tài liệu uy tín khác để hiểu rõ hơn về các tính năng và cách sử dụng.

Kết Luận

Việc hiển thị sticky posts mới nhất trong WordPress giúp bạn làm nổi bật những nội dung quan trọng và cải thiện trải nghiệm người dùng. Bạn có thể sử dụng code trong file functions.php, plugin, hoặc chỉnh sửa template files trực tiếp để thực hiện điều này. Hãy chọn phương pháp phù hợp với trình độ kỹ thuật và nhu cầu của bạn. Đừng quên sao lưu trang web của bạn trước khi thực hiện bất kỳ thay đổi nào.