بیشتر اوقات لازم است تا لیست پست های مرتبط با یک پست را که با آن در دسته های مشترک قرار گرفته اند یا دارای برچسب های مشترک هستند را نشان دهیم. این لیست را می توانیم در ستون کناری صفحه single.php یا در ادامه محتوای پست در همان صفحه نمایش دهیم.
نمایش لیست نوشته های هم دسته با نوشته جاری
بعضی از نوشته های مرتبط با نوشته در یک دسته قرار دادند . برای نمایش لیست این پست ها، باید لیست دسته های مربوط به نوشته جاری را بدست آورده و شناسه های آنها را در یک آرایه قرار دهیم:
$cats=get_the_category();
$ids=array();
foreach($cats as $cat)
$ids[]=$cat->term_id;
حالا می توانیم با تعیین پارامترهای مناسب و کلاس WP_Query لیست نوشته های مرتبط با این نوشته را استخراج کرده و نمایش دهیم:
$args=array('post_type'=>'post' ,
'category__in'=>$ids ,
'post__not_in'=> array(get_the_ID()),
'posts_per_page'=>7 );
$query = new WP_Query($args);
echo "<ul>";
while($query->have_posts()){
$query->the_post();
?>
<li>
<a href=" <?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php
}
echo "</ul>";
wp_reset_postdata();
?>
نمایش لیست نوشته های دارای برچسب مشترک
بعضی از نوشته های مرتبط با نوشته دارای برچسب مشترک هستند . برای نمایش لیست این پست ها، باید لیست برچسب های مربوط به نوشته جاری را بدست آورده و شناسه های آنها را در یک آرایه قرار دهیم:
<?php
$terms=get_the_terms(get_the_ID() , 'post_tag');
$ids=array();
foreach($terms as $term)
$ids[]=$term->term_id;
?>
در ادامه می توانیم با تعیین پارامترهای مناسب و کلاس WP_Query لیست نوشته های مرتبط با این نوشته را استخراج کرده و نمایش دهیم:
<?php
$args=array('post_type'=>'post' ,
'tag__in'=>$ids ,
'post__not_in'=> array(get_the_ID()),
'posts_per_page'=>5 );
$query = new WP_Query($args);
echo "<ul>";
while($query->have_posts()){
$query->the_post();
?>
<li>
<a href=" <?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<?php
}
echo "</ul>";
wp_reset_postdata();
?>
echo "</ul>";
wp_reset_postdata();
?>