Tự tạo bài viết liên quan cho WordPress
Có rất nhiều plugin hỗ trợ cho chức năng bài viết liên quan (Related Post) cho WordPress, nhưng theo iZdesigner thì chúng ta nên hạn chế sử dụng plugin vì có thể gây ra chậm website và có thể gây xung đột giữa các plugin với nhau. Bạn có thể tự viết cho mình chức năng tự tạo danh sách bài viết liên quan trong WordPress bằng những dòng lệnh đơn giản giúp bạn có thể tăng thêm khả năng lập trình và giảm thiểu được rủi ro.
Để thực hiện, bạn hãy thêm đoạn code dưới đây vào file functions.php. Bạn có thể chọn 1 trong 2 cách sau đây:
1. Danh sách bài viết liên quan theo Category
2. Danh sách bài viết liên quan theo Tag
Tiếp theo bạn mở file single.php và thêm đoạn code sau vào vị trí hiển thị:
1. Code hiển thị bài viết liên quan theo Category
2. Code hiển thị bài viết liên quan theo Tag
Các bạn có thể vào file style.css để chỉnh sửa .sametilte và .same cho phù hợp với site của bạn.
Để thực hiện, bạn hãy thêm đoạn code dưới đây vào file functions.php. Bạn có thể chọn 1 trong 2 cách sau đây:
1. Danh sách bài viết liên quan theo Category
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| function get_samepost_category() { $categories = get_the_category( $post ->ID); if ( $categories ): $category_ids = array (); foreach ( $categories as $individual_category ): $category_ids [] = $individual_category ->term_id; $args = array ( 'category__in' => $category_ids , 'post__not_in' => array ( $post ->ID), 'showposts' =>5, 'ignore_sticky_posts' =>1, 'orderby' =>rand); $my_query = new wp_query( $args ); endforeach ; if ( $my_query ->have_posts() ): if ( is_single() ):?> <div class = "sametitle" >Bài viết cùng chủ đề</div> <div class = "same" > <ol> <?php while ( $my_query ->have_posts()): $my_query ->the_post();?> <li> <a href= "<?php the_permalink() ?>" rel= "bookmark" title= "<?php the_title_attribute(); ?>" ><?php the_title(); ?></a> </li> <?php endwhile ; ?> </ol> </div> <?php endif ; endif ; endif ; wp_reset_query(); } ?> |
2. Danh sách bài viết liên quan theo Tag
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| function related_posts_tags () { if ( is_single ( ) ) { global $post ; $count = 0; $postIDs = array ( $post ->ID ); $related = '' ; $tags = wp_get_post_tags( $post ->ID ); foreach ( $tags as $tag ) { $tagID [] = $tag ->term_id; } $args = array ( 'tag__in' => $tagID , 'post__not_in' => $postIDs , 'showposts' => 5, 'ignore_sticky_posts' => 1, 'tax_query' => array ( array ( 'taxonomy' => 'post_format' , 'field' => 'slug' , 'terms' => array ( 'post-format-link' , 'post-format-status' , 'post-format-aside' , 'post-format-quote' ), 'operator' => 'NOT IN' ) ) ); $tag_query = new WP_Query( $args ); if ( $tag_query ->have_posts() ) { while ( $tag_query ->have_posts() ) { $tag_query ->the_post(); $related .= '<li><a href="' . get_permalink() . '" rel="bookmark" title="Permanent Link to' . get_the_title() . '">' . get_the_title() . '</a></li>' ; $postIDs [] = $post ->ID; $count ++; } } if ( $related ) { printf( '<div><h3>Related Posts</h3><ul>%s</ul></div>' , $related ); } wp_reset_query(); } } // Dành cho themes sử dụng XHTML add_action( 'genesis_after_post_content' , 'child_related_posts' ); // Dành cho themes HTML5 add_action( 'genesis_after_entry_content' , 'child_related_posts' )</pre> |
Tiếp theo bạn mở file single.php và thêm đoạn code sau vào vị trí hiển thị:
1. Code hiển thị bài viết liên quan theo Category
1
| <!--?php get_samepost_category(); ?--> |
2. Code hiển thị bài viết liên quan theo Tag
1
| <?php get_samepost_tag(); ?> |
Các bạn có thể vào file style.css để chỉnh sửa .sametilte và .same cho phù hợp với site của bạn.
Thanh Tịnh - iZdesigner.com
Tự tạo bài viết liên quan cho WordPress
Reviewed by Unknown
on
05:35
Rating:
Không có nhận xét nào: