WordPress模板插件定制

您现在的位置是:首页 > WordPress教程WordPress教程

WordPress如何添加相关文章

查看 WP集市 的更多文章WP集市 2025-09-01 【WordPress教程】 1270人已围观

  1. 在WordPress里搞相关文章,说白了就是让读者看完一篇还能接着看同类型的。一般有两种路子:用插件或者自己写代码。插件省事,但自己写更灵活。咱先从简单的来,比如用wp_related_posts()函数,不过这函数现在主题里不一定自带,得自己捣鼓一下。

  2. 首先,得在文章单页(single.php)里找个合适的位置,通常放在内容后面。用代码框插进去:

    <?php 
    if (function_exists('wp_related_posts')) {
    wp_related_posts();
    } else {
    // 备用方案:用WordPress原生函数get_posts()来模拟
    $related = get_posts(array(
        'category__in' => wp_get_post_categories(get_the_ID()),
        'numberposts' => 5,
        'post__not_in' => array(get_the_ID())
    ));
    if ($related) {
        echo '<ul>';
        foreach ($related as $post) {
            setup_postdata($post);
            echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
        }
        wp_reset_postdata();
        echo '</ul>';
    }
    }
    ?>

    这段代码先检查有没有现成的函数,没有就自己拉个列表,按同分类抓5篇,排除自己。

  3. 但这样可能太简单了,相关度不高。进阶点可以用标签匹配,或者用WordPress的transient做缓存,避免每次加载都查数据库。比如:

    $related_key = 'related_posts_' . get_the_ID();
    $related = get_transient($related_key);
    if (false === $related) {
    $tags = wp_get_post_tags(get_the_ID(), array('fields' => 'ids'));
    if ($tags) {
        $related = get_posts(array(
            'tag__in' => $tags,
            'posts_per_page' => 5,
            'exclude' => get_the_ID()
        ));
        set_transient($related_key, $related, DAY_IN_SECONDS);
    }
    }

    用标签ID来关联,然后存一天缓存,这样服务器压力小点。

  4. 最后,别忘了样式。加个div包起来,CSS里写点好看的样子,比如:

    .related-posts {
    margin: 20px 0;
    padding: 10px;
    border: 1px solid #eee;
    }
    .related-posts ul {
    list-style: none;
    padding-left: 0;
    }
    .related-posts li {
    margin: 5px 0;
    }

    这样看起来就像回事了。总之,相关文章核心是提高停留时间,代码怎么搞都行,但别太复杂,否则加载慢了反而坏事。

Tags:

WordPress模板插件定制

WP集市

V管理员
文章 280 篇 | 评论 0 次
最新文章