Cách hiển thị bài viết liên quan mà không cần dùng plugin trong wordpress

Nếu bạn nào không muốn dùng plugin có sẵn trên mạng thì mình xin chia sẻ đoạn code làm điều này , các bạn chỉ cần past đoạn code này vào filesingle.php trong folder giao diện của các bạn :

thu thuat wordpress, tin lien quan, WordPress Hacks, bai viet lien quan, wordpress
Trong bài viết này mình có 2 lựa chọn dành cho bạn:
Lựa chọn thứ nhất : Hiển thị bài viết liên quan dựa trên các thẻ tag của bài viết .

<?php

//Lấy danh sách các thẻ tag từ bài viết

$tags = wp_get_post_tags($post->ID);

//Nếu tags tồn tại thì.

if ($tags) {

$tag_ids = array();

//Lấy giá trị id của tag

foreach($tags as $each_tag)

$tag_ids[] = $each_tag->term_id;



//WP_Query arguments.

$args = array(

'tag__in' => $tag_ids, //Một mảng của tag IDs sẽ được đưa vào.

'post__not_in' => array($post->ID), //Một mảng của ID bài viết sẽ được loại trừ.

'orderby'=> 'rand', //Hiển thị bài viết ngẫu nhiên

'showposts' => 10, // Số lượng bài viết mà bạn muốn hiển thị

//'caller_get_posts' => 1 // sử dụng nếu bạn sử dụng wordpress phiên bản  < 3.1 ***

'ignore_sticky_posts' => 1 //*** sử dụng cho phiên bản wordpress >= 3.1 ***

);

$query = new WP_Query($args);

//Nếu có những bài viết liên quan thì

if( $query->have_posts() ) {

echo '<div>';

echo '<h3>Related Article(s):</h3><ol>'; //*** Thay đổi tiêu đề theo ý bạn***



while ($query->have_posts()) {

$query->the_post();

?>

<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to: <?php the_title_attribute(); ?>">

<?php the_title(); ?></a></li>

<?php

}

echo '</ol>';

echo '</div>';

}

}

// Hủy chuỗi query trước đó

wp_reset_query();

?>

Lựa chọn thứ hai : Hiển thị bài viết liên quan dựa trên danh mục của bài viết (category).

<?php

if ($categories) {

$category_ids = array();

//retrieve the category_ids for the post.

foreach($categories as $each_category)

$category_ids[] = $each_category->term_id;

//WP_Query arguments.

$args = array(

'tag__in' => $tag_ids, //Một mảng của tag IDs sẽ được đưa vào.

'post__not_in' => array($post->ID), //Một mảng của ID bài viết sẽ được loại trừ.

'orderby'=> 'rand', //Hiển thị bài viết ngẫu nhiên

'showposts' => 10, // Số lượng bài viết mà bạn muốn hiển thị

//'caller_get_posts' => 1 // sử dụng nếu bạn sử dụng wordpress phiên bản  < 3.1 ***

'ignore_sticky_posts' => 1 //*** sử dụng cho phiên bản wordpress >= 3.1 ***

);

$query = new WP_Query($args);

//Nếu có những bài viết liên quan thì

if( $query->have_posts() ) {

echo '<div>';

echo '<h3>Related Article(s):</h3><ol>'; //*** Thay đổi tiêu đề theo ý bạn***

while ($query->have_posts()) {

$query->the_post();

?>

<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to: <?php the_title_attribute(); ?>">

<?php the_title(); ?></a></li>

<?php

}

echo '</ol>';

echo '</div>';

}

}

// Hủy chuỗi query trước đó

wp_reset_query();

?>

Sau khi bạn quyết định lựa chọn của mình, thì copy và past code tương ứng vào file single.php. File này nằm trong folder theme mà bạn đang sử dụng. Đoạn code phải được đặt bên dưới hàm the_content() như đoạn code minh họa bên dưới :

<?php get_header(); ?>

<!-- part of the single.php code removed for brevity. -->

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>



<div <?php post_class() ?> id="post-<?php the_ID(); ?>">

<div>

<span><?php the_time('d') ?></span><br />

<span><?php the_time('M') ?></span><br />

<span><?php the_time('Y') ?></span>

</div>



<div>



<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>

<div>

<?php the_content('Read the rest of this entry &raquo;'); ?>

<?php /*Phần phân trang nằm ở đây. */ wp_link_pages(array('before' => '<p><span>Pages:</span> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

</div>



<!-- Đây là nơi bạn sẽ đặt đoạn code mà bạn muốn hiển thị



<!-- Kết thúc đoạn code ở đây  -->

</div>

</div>



<div>

<?php comments_template(); ?>

</div>

<?php endwhile; else: ?>

<p id="rightcolumn">Sorry, no posts matched your criteria.</p>

<?php endif; ?>

</div>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

?>

Nếu bạn cảm thấy việc code tay như vậy sẽ làm bạn cảm thấy mất thời gian hay khó thực hiện thì có thể tham khảo bài viết Top 5 plugin tạo tin liên quan cho trang WordPress

 

 HỖ TRỢ TRỰC TUYẾN