aa

Hiển thị bài viết tuần trước WordPress

2 tháng ago, Hướng dẫn WordPress, 1 Views
Hiển thị bài viết tuần trước WordPress

Giới Thiệu

Trong WordPress, việc hiển thị các bài viết đã xuất bản từ tuần trước là một yêu cầu phổ biến cho nhiều trang web, đặc biệt là các trang tin tức, blog tổng hợp hoặc các trang web muốn làm nổi bật nội dung mới nhất của mình. Có nhiều cách để thực hiện điều này, từ sử dụng các plugin có sẵn đến tùy chỉnh code trực tiếp trong theme của bạn. Bài viết này sẽ hướng dẫn chi tiết các phương pháp khác nhau để hiển thị bài viết tuần trước trong WordPress, cùng với ưu và nhược điểm của từng phương pháp.

Sử Dụng Plugin WordPress

Một trong những cách đơn giản nhất để hiển thị bài viết tuần trước là sử dụng plugin WordPress. Có rất nhiều plugin miễn phí và trả phí có thể giúp bạn đạt được điều này. Dưới đây là một số plugin phổ biến:

  • Display Posts
  • WordPress Popular Posts
  • Recent Posts Widget With Thumbnails

Mỗi plugin có những tính năng và cách sử dụng riêng, nhưng nhìn chung, bạn sẽ cần cài đặt và kích hoạt plugin, sau đó cấu hình các tùy chọn để hiển thị bài viết theo thời gian mong muốn. Ví dụ, với plugin “Display Posts”, bạn có thể sử dụng shortcode để hiển thị bài viết dựa trên nhiều tiêu chí khác nhau, bao gồm cả thời gian xuất bản.

Hướng Dẫn Sử Dụng Plugin “Display Posts”

Để sử dụng plugin “Display Posts” để hiển thị bài viết tuần trước, bạn thực hiện các bước sau:

  1. Cài đặt và kích hoạt plugin “Display Posts” từ kho plugin của WordPress.
  2. Truy cập trang hoặc bài viết mà bạn muốn hiển thị bài viết tuần trước.
  3. Chèn shortcode [display-posts date="past week"] vào vị trí bạn muốn.
  4. Lưu lại trang hoặc bài viết.

Bạn có thể tùy chỉnh shortcode này để thay đổi cách hiển thị bài viết, ví dụ:

  • posts_per_page: Số lượng bài viết hiển thị.
  • orderby: Thứ tự sắp xếp (ví dụ: date, title).
  • order: Chiều sắp xếp (ASC – tăng dần, DESC – giảm dần).
  • include_excerpt: Hiển thị trích đoạn của bài viết.
  • image_size: Kích thước hình ảnh thu nhỏ.

Ví dụ:

[display-posts date="past week" posts_per_page="5" orderby="date" order="DESC" include_excerpt="true" image_size="thumbnail"]

Tùy Chỉnh Code Trong Theme WordPress

Nếu bạn muốn có nhiều quyền kiểm soát hơn đối với cách hiển thị bài viết tuần trước, bạn có thể tùy chỉnh code trực tiếp trong theme WordPress của mình. Phương pháp này đòi hỏi kiến thức về PHP và WordPress Theme Development. Bạn có thể thêm code vào file functions.php của theme (hoặc child theme) hoặc tạo một template tùy chỉnh.

Ví Dụ Code PHP để Hiển Thị Bài Viết Tuần Trước

Dưới đây là một ví dụ về code PHP bạn có thể sử dụng để hiển thị bài viết tuần trước:

<?php
function display_last_week_posts() {
  $today = date('Y-m-d');
  $last_week = date('Y-m-d', strtotime('-1 week'));

  $args = array(
    'date_query' => array(
      array(
        'after'     => $last_week,
        'before'    => $today,
        'inclusive' => true,
      ),
    ),
    'posts_per_page' => 5, // Số lượng bài viết hiển thị
    'orderby'        => 'date', // Sắp xếp theo ngày
    'order'          => 'DESC', // Sắp xếp giảm dần
  );

  $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 '<p>Không có bài viết nào trong tuần trước.</p>';
  }
}

// Sử dụng hàm này trong template của bạn
?>
<?php display_last_week_posts(); ?>

Giải thích code:

  • Hàm display_last_week_posts() lấy ngày hiện tại và ngày của tuần trước.
  • Tạo một mảng $args để định nghĩa các tham số của truy vấn bài viết.
  • Sử dụng WP_Query để truy vấn bài viết dựa trên các tham số đã định nghĩa.
  • Hiển thị các bài viết trong một danh sách không có thứ tự (<ul>).
  • Nếu không có bài viết nào trong tuần trước, hiển thị thông báo.

Để sử dụng hàm này, bạn có thể thêm nó vào file functions.php của theme và sau đó gọi hàm này trong template của bạn, ví dụ: <?php display_last_week_posts(); ?>.

Tạo Template Tùy Chỉnh

Bạn cũng có thể tạo một template tùy chỉnh để hiển thị bài viết tuần trước. Điều này cho phép bạn kiểm soát hoàn toàn cách bố trí và hiển thị các bài viết. Để tạo một template tùy chỉnh, bạn thực hiện các bước sau:

  1. Tạo một file PHP mới trong thư mục theme của bạn, ví dụ: last-week-posts.php.
  2. Thêm code PHP để truy vấn và hiển thị bài viết tuần trước (tương tự như ví dụ trên).
  3. Thêm dòng code sau vào đầu file để cho WordPress biết đây là một template: <?php /* Template Name: Bài Viết Tuần Trước */ ?>.
  4. Tạo một trang mới trong WordPress và chọn template “Bài Viết Tuần Trước” cho trang đó.

Sử Dụng WP_Query Nâng Cao

WP_Query là một class mạnh mẽ trong WordPress cho phép bạn truy vấn bài viết dựa trên nhiều tiêu chí khác nhau. Ngoài việc sử dụng date_query như trong ví dụ trên, bạn có thể sử dụng các tham số khác để lọc và sắp xếp bài viết.

Ví Dụ Sử Dụng Meta Query

Nếu bạn muốn hiển thị bài viết tuần trước dựa trên một trường meta cụ thể, bạn có thể sử dụng meta_query. Ví dụ, nếu bạn có một trường meta có tên là “featured” và bạn chỉ muốn hiển thị các bài viết “featured” từ tuần trước, bạn có thể sử dụng code sau:

<?php
$today = date('Y-m-d');
$last_week = date('Y-m-d', strtotime('-1 week'));

$args = array(
  'date_query' => array(
    array(
      'after'     => $last_week,
      'before'    => $today,
      'inclusive' => true,
    ),
  ),
  'meta_query' => array(
    array(
      'key'     => 'featured',
      'value'   => 'true',
      'compare' => '=',
    ),
  ),
  'posts_per_page' => 5,
  'orderby'        => 'date',
  '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 '<p>Không có bài viết nào trong tuần trước.</p>';
}
?>

Lời Khuyên và Lưu Ý

Khi hiển thị bài viết tuần trước trong WordPress, hãy lưu ý những điều sau:

  • **Hiệu suất:** Truy vấn quá nhiều bài viết có thể ảnh hưởng đến hiệu suất của trang web. Hãy cân nhắc giới hạn số lượng bài viết hiển thị.
  • **Bộ nhớ cache:** Sử dụng bộ nhớ cache (caching) để giảm tải cho server và cải thiện tốc độ tải trang.
  • **Child Theme:** Khi tùy chỉnh code trong theme, hãy sử dụng child theme để tránh mất các thay đổi khi theme được cập nhật.
  • **Bảo mật:** Luôn cẩn thận khi cài đặt plugin từ các nguồn không tin cậy.

Kết Luận

Hiển thị bài viết tuần trước trong WordPress là một nhiệm vụ đơn giản nhưng quan trọng để làm nổi bật nội dung mới nhất của bạn. Bạn có thể sử dụng plugin để thực hiện một cách nhanh chóng và dễ dàng, hoặc tùy chỉnh code trong theme để có nhiều quyền kiểm soát hơn. Hãy chọn phương pháp phù hợp nhất với nhu cầu và kỹ năng của bạn.