Trang chủ WordpressWordpress Development Hướng dẫn Post Relationship trong WordPress

Hướng dẫn Post Relationship trong WordPress

bởi Thạch Phạm
0 bình luận 2,6K views

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay

Thuật ngữ Post Relationship đã quá quen thuộc cho các tín đồ sử dụng Joomla hay Drupal, và nó cũng là một trong quan trọng để hình thành một Content System Management (CMS) hoàn chỉnh.

Post Relationship thường được dùng để làm những hệ thống mang tính chất phân chia nhiều bài viết theo dạng mẹ – con như series, tập truyện, chủ đề,….Nên thành ra, WordPress không có tính năng Post Relationship là một bất lợi lớn.

Mặc dù vậy không có nghĩa là họ bó tay, hiện tại WordPress cũng có nhiều plugin hỗ trợ bạn làm việc này và trong bài này mình sẽ giới thiệu qua một vài plugin có khả năng như thế và hướng dẫn sử dụng một plugin mà mình thích nhất để làm hệ thống post mẹ – post con. Sau bài này, mình sẽ có tutorial hướng dẫn bạn áp dụng để làm một hệ thống tập truyện đơn giản.

Khuyến mãi Black Friday

Post Relationship trong WordPress là gì?

Đầu tiên là bạn nhìn hình miêu tả dưới đây nhé.

Post mẹ - Post con trong WordPress

Khái niệm Post Relationship

Post Relationship nghĩa là tính năng cho phép bạn tạo ra một post mẹ, sau đó sẽ kết nối nó đến nhiều post khác và những post được kết nối ta sẽ gọi nó là post con. Không quan trọng nó thuộc post type nào nhé.

Ví dụ cụ thể, ta có một post mang tên Truyện thần điêu đại hiệp (post mẹ), sau đó ta sẽ kết nối nó vào các post khác với tên Truyện thần điêu đại hiệp – Phần 1, Truyện thần điêu đại hiệp – Phần 2 (post con),…và khi chúng ta xem bài post mẹ thì nó sẽ hiển thị danh sách các post con ngay bên dưới bài hoặc ở đâu đó tuỳ thích.

Cách tạo Post Relationship trong WordPress

Như mình nói ở đầu bài, chúng ta sẽ dùng plugin để làm việc này nên ở đây mình sẽ giới thiệu 3 plugin hỗ trợ làm hệ thống Post Relationship tốt và chuyên nghiệp nhất mình đã từng thử nghiệm qua.

Posts 2 Posts

Đây là một plugin đơn giản nhất để tạo hệ thống Post Relationship nhưng hiệu quả khá là cao mà tí nữa mình sẽ tập trung vào plugin này. Nhiệm vụ của nó là cho phép chúng ta tự tạo một hệ thống post mẹ – post con theo custom post type chỉ định.

Dashboard của Posts 2 Posts

Dashboard của Posts 2 Posts

Cách sử dụng là sẽ cài vào, sau đó viết thêm một hàm để kích hoạt nó làm việc theo từng post type chỉ định lên và tiếp tục viết code để các post con hiển thị ra. Nhìn chung nó rất hữu ích cho các coder, developer.

Cách làm việc của Posts 2 Posts

Hướng dẫn Posts 2 Posts

CPT-onomies

cptonomies

Plugin này lại có khá nhiều tính năng, nó có thể hỗ trợ bạn tạo một custom post type hoàn chỉnh và thiết lập một post nào đó trở thành Taxonomy để phân loại, tức là bài đó có thể chứa nhiều bài viết con khác, giống Posts 2 Posts phía trên.

Đây là plugin mình không khuyến khích sử dụng cho người mới cho lắm vi cách sử dụng hơi phức tạp và phải kết hợp với một số API cũng như functions mặc định của WordPress để nó có thể hoạt động hoàn chỉnh. Nhưng lại nhiệt liệt recommend cho developer.

Types

Relationship Post trong Types

Relationship Post trong Types

Đây là một plugin liên quan đến custom field, custom post type và custom user field đầy đủ nhất đến thời điểm hiện tại mình biết được. Nó tập hợp đủ mọi chức năng như tạo custom field theo nhiều kiểu khác nhau, tạo custom post type và taxonomy hoàn chỉnh nhất và quan trọng là hỗ trợ bạn tạo thêm user field dễ dàng (giống như ở blog mình, phần thành viên sẽ có thêm mục điền tài khoản mạng xã hội, quê quán,…).

Hơn nữa, nó cũng có một lợi thế lớn là có thêm plugin WP Views để bạn tự tạo trang hiển thị các post type tuỳ ý mà không cần phải động vào code nhưng giá cả thì có vẻ hơi chát khi bạn phải mua 1 bộ hết $159, nhưng nếu bạn là developer thì không cần dùng tới vì mình đã từng mua và đến nay vẫn cho nó vào một xó vì có nhiều cái không ưng.

Dĩ nhiên, nó cũng có thể tạo hệ thống Post Relationship như chúng ta mong muốn, bạn có thể tham khảo hướng dẫn của họ để biết cách làm nhé.

Hướng dẫn Posts 2 Posts để làm Post Relationship

Ở đây mình sẽ hướng dẫn Posts 2 Posts vì nó đơn giản dễ làm, còn các plugin khác thì ai là Developer thì có thể tự tìm hiểu.

Sau khi cài plugin Posts 2 Posts xong, bạn tiến hành khai báo một hàm này vào file functions.php của theme:


function tap_truyen() {
p2p_register_connection_type( array(
‘name’ => ‘create_tap_truyen’,
‘from’ => ‘page’,
‘to’ => ‘post’
) );
}
add_action( ‘p2p_init’, ‘tap_truyen’ );

Cái mà bạn cần để ý nhất là 3 tham số name, from và to.

  • name: Nghĩa là tên của relationship này để chút nữa chúng ta khai báo vào code để nó hiển thị bài viết.
  • from: tên post type sẽ làm post mẹ.
  • to: tên post type sẽ làm post con.

Sau khi chèn xong, bạn vào Tools -> Connection Types để xem nó có hiện ra post type mà bạn cần kết nối với nhau hay chưa, nếu có thì đã kết nối thành công.

Dashboard của Posts 2 Posts

Dashboard của Posts 2 Posts

Kế đó bạn vào tạo bài mới trong post type mẹ và nhìn bên tay phải sẽ thấy phần chọn các post con như ảnh.

Cách làm việc của Posts 2 PostsCác bạn tìm và thêm bài viết vào post mẹ tuỳ ý.

Như vậy là bạn đã kết nối các post con vào post mẹ thành công. Tuy nhiên nó vẫn chưa hiển thị ra bên trong bài viết mẹ mà mình sẽ viết một code vào giữa đoạn loop của trang hiển thị post mẹ (Ví dụ bạn lấy Page làm post mẹ thì sẽ chèn vào file page.php).

Thế chèn ở đâu? Đó là chèn vào giữa đoạn loop, tốt nhất là dưới hàm the_content().


<?php
// Find connected pages
$connected = new WP_Query( array(
‘connected_type’ => ‘create_tap_truyen’,
‘connected_items’ => get_queried_object(),
‘nopaging’ => true,
) );

// Display connected pages
if ( $connected->have_posts() ) :
?>
<h3>Bài viết con</h3>
<ul>
<?php while ( $connected->have_posts() ) : $connected->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>

<?php
// Prevent weirdness
wp_reset_postdata();

endif;
?>

Bạn thấy tham số connected_type chứ? Đó là phần bạn khai báo cái tham số name mà bạn đã làm ở bước chèn code vào file functions.php.

Và đây là kết quả

post2post-result

Như vậy là nó đã hiển thị ra danh sách các bài viết con rồi, tức là đã làm được việc mà chúng ta mong muốn. Mình tin rằng với một vài bước đơn giản như vậy nó sẽ giúp ích bạn rất nhiều việc mà nếu bạn muốn biết cụ thể hơn, hãy đón xem tutorial làm tập truyện của mình sắp tới.

Đánh giá nội dung này
0 bình luận

Có thể bạn quan tâm

Hiện tại blog tạm đóng bình luận vì mình cần tập trung thời gian vào cập nhật bài viết. Bình luận sẽ mở ra cho đến khi mình sẵn sàng.