WordPress ?: Tạo series cho bài đăng WordPress

Bài viết giới thiệu cho bạn cách tạo series bài viết giống như trên Math2IT. Chúng ta sẽ sử dụng và tùy chỉnh plugin Organize Series.

Bản thân plugin này cũng có vài tùy chỉnh nhưng để có thể sử dụng đúng như ý của chúng ta, chúng ta sẽ tiến hành chỉnh sửa sâu cho nó. Cụ thể, chúng ta muốn làm những việc sau đây:

  1. Truy xuất và sử dụng tùy úy đoạn code hiển thị danh sách các bài đăng trong series ở bất cứ đâu chúng ta muốn.
  2. Thêm số bài post tối đa được phép hiển thị trong series.
  3. Hiểu một số tùy chọn của plugin này.

Cài đặt plugin Organize Series

Bạn có thể cài đặt nó bằng trình cài plugins trong wp-admin hoặc download về rồi upload lên cũng được.

Thiết lập trong plugin

Sau khi cài và kích hoạt plugin xong, bạn vào Settings > Series Options và thiết lập giống như hình sau:

s1 1366x881 - Wordpress ?: Tạo series cho bài đăng Wordpress

Lưu ý, trong hình trên tôi đã bỏ chọn vào mục Display series post list box?. Lý do là bởi tôi muốn tự mình chèn đoạn code hiển thị series này theo ý của tôi! Nếu bạn muốn hiển thị theo mặc định của plugin, bạn hãy tick chọn nó!

Dưới tùy chọn ở trên là các tùy chọn hiển thị bài post với các shortcode quan trọng sau đây:

  • %series_title_linked%: Tên của series có kèm theo link đến trang web của series.
  • %post_title_list%: Danh sách các bài đăng trong series.
  • %post_title_linked%: Tên của mỗi bài đăng trong series (kèm theo link).
  • %post_title%: Tên của bài đăng (không kèm link)

Ngoài ra còn nhiều tùy chọn khác mà bạn có thể tự mình đọc hiểu và sử dụng.

Chèn thủ công danh sách bài đăng

Sau khi “lục lọi” tìm kiếm trong source code của plugin, tôi đã tìm ra cách để chèn thủ công một series liên quan đến một bài post nào đó (có id là $post_id) như đoạn code dưới đây.

<?php // series
  $post_id = get_the_ID(); // lấy id của post
  $series = get_the_series($post_id); // lấy series ứng với bài post
  $series_id = $series[0]->term_id; // lấy id của series 
  $series_link = get_series_link($series_id); // lấy link đến trang của series
  $series_name = get_series_name($series_id); // lấy tên của series
?>
<div class="series-sidebar">
  <div class="seriesbox sticky-top">
    <div class="series-title">
      Chủ đề <?php echo '<a target="_blank" href="'.$series_link.'">'.$series_name.'</a>'; ?>
    </div>
    <ul class="serieslist-ul">
      <?php echo get_series_posts(); ?>
    </ul>
  </div>
</div>

Thay đổi số bài viết tối đa được hiển thị

Bạn vào thư mục của plugins và chỉnh file với tên gọi orgSeries-template-tags.php.

s2 1366x697 - Wordpress ?: Tạo series cho bài đăng Wordpress
Hình 2. Chỉnh sửa source code của plugin.

Tìm đến dòng chứa đoạn code sau:

foreach($posts_in_series as $seriespost){
... // đoạn code hiển thị chính
}

Thêm vào đoạn code này một lệnh if để “đếm” số lượng bài post đã ok chưa:

$thi_count = 0;
$max_num_posts = 4; // số lượng bài tối đa được hiển thị
foreach($posts_in_series as $seriespost){
  if ($thi_count < $max_num_posts){
    ... // đoạn code hiển thị chính
    $thi_count = $thi_count + 1;
  }
}

Lưu ý, có thể bạn sẽ thấy chức năng hiển thị tựa đề ngắn gọn cho bài đăng (tùy chọn Post title in widget ở mục Series của mỗi bài đăng) sẽ không có nhiều tác dụng với một số theme, cụ thể là với theme bạn tạo như hướng dẫn của Math2IT. Để có thể hiển thị giống như tùy chọn mặc định của plugin này, bạn cần thêm vào trước $thi_count = 0 trong đoạn code trên dòng code sau đây

$referral = true;