
您现在的位置是:首页 > WordPress教程WordPress教程
WordPress如何添加相关文章
WP集市
2025-09-01
【WordPress教程】
1270人已围观
-
在WordPress里搞相关文章,说白了就是让读者看完一篇还能接着看同类型的。一般有两种路子:用插件或者自己写代码。插件省事,但自己写更灵活。咱先从简单的来,比如用
wp_related_posts()
函数,不过这函数现在主题里不一定自带,得自己捣鼓一下。 -
首先,得在文章单页(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篇,排除自己。
-
但这样可能太简单了,相关度不高。进阶点可以用标签匹配,或者用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来关联,然后存一天缓存,这样服务器压力小点。
-
最后,别忘了样式。加个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:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。

热门文章
