两种方法让wordpress实现相关文章调用

技术文档 2024年1月5日

方法一:标签相关

通过获取当前文章的所有标签,再获取该标签下与该文章相关的文章,下面是实现的代码加到需要的地方就可以

<?php
$post_tags = wp_get_post_tags($post->ID);
if ($post_tags) {
foreach ($post_tags as $tag) 
{
    // 获取标签列表
    $tag_list[] .= $tag->term_id;
}
// 随机获取标签列表中的一个标签
$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];
// 该方法使用 query_posts() 函数来调用相关文章,以下是参数列表
$args = array(
        'tag__in' => array($post_tag),
        'category__not_in' => array(NULL),      // 不包括的分类ID
        'post__not_in' => array($post->ID),
        'showposts' => 6, // wodepress.com
        'caller_get_posts' => 1
    );
query_posts($args);
if (have_posts()) : 
    while (have_posts()) : the_post(); update_post_caches($posts); ?>
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; else : ?>
    <li>* 暂无相关文章</li>
<?php endif; wp_reset_query(); } ?>

方法二:分类相关

通过获取该文章的分类id,再获取该分类下的文章,来达到获取相关文章的目的。

<?php
$cats = wp_get_post_categories($post->ID);
if ($cats) {
$cat = get_category( $cats[0] );
$first_cat = $cat->cat_ID;
$args = array(
        'category__in' => array($first_cat),
        'post__not_in' => array($post->ID),
        'showposts' => 6,
        'caller_get_posts' => 1);
query_posts($args);
if (have_posts()) : 
while (have_posts()) : the_post(); update_post_caches($posts); ?>
<li>* <a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute();
 ?>"><?php the_title(); ?></a></li>
<?php endwhile; else : ?>
<li>* 暂无相关文章</li>
<?php endif; wp_reset_query(); } ?>

相关文章