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.
Post Relationship
trong WordPress là gì?
Đầu tiên là bạn nhìn hình miêu tả dưới đây nhé
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.
Đâ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
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.
Hướng dẫn Posts 2 Posts
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.
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
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á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ả
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.
Nguồn: thachpham.com
Nhận xét
Đăng nhận xét