WordPress代码实现相关文章的几种方法(一)
- 格式:pdf
- 大小:81.05 KB
- 文档页数:2
WordPress代码实现相关⽂章的⼏种⽅法(⼀)
WordPress有很多实现相关功能的插件,插件的优点是配置简单,但是可能会对⽹站的速度造成⼀些⼩的影响,所以很多⼈还是⽐较喜欢⽤
代码实现需要的功能,但是话⼜说回来了,代码实现也有缺点,就是配置复杂,不懂代码的⼈完全摸不着头脑或者只能照搬别⼈的代码,还
不如⽤插件。
这⾥我整理编写了⼏种⽤代码实现相关⽂章的⽅法,这其中会详细标明各部分代码的作⽤,以及如何⾃定义你想要的功能,希望对⼤家有所
帮助,有什么问题可以给本⽂发表评论,我会及时给你回复。开始之前,说明⼀点,以下所有⽅法输出的HTML代码格式都是以下形式,你
可以根据需要进⾏修改:
⽅法⼀:标签相关
⾸先获取⽂章的所有,接着获取这些标签下的 n 篇⽂章,那么这 n 篇⽂章就是与该⽂章相关的⽂章了。现在可以见到的WordPress相关⽂章
插件都是使⽤的这个⽅法。下⾯是实现的代码:
$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, // 显⽰相关⽂章数量
'caller_get_posts' => 1
);
query_posts($args);
if (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts); ?>
使⽤说明:”不包括的分类ID” 指的是相关⽂章不显⽰该分类下的⽂章,将同⾏的 NULL 改成⽂章分类的ID即可,多个ID就⽤半⾓逗号隔开。
因为这⾥限制只显⽰6篇相关⽂章,所以不管给 query_posts() 的参数 tag__in 赋多少个值,都是只显⽰⼀个标签下的 6 篇⽂章,除⾮第⼀个
标签有1篇,第⼆个标签有2篇,第三个有3篇。。。。。。所以如果这篇⽂章有多个标签,那么我们采取的做法是随机获取⼀个标签的id,
赋值给 tag__in 这个参数,获取该标签下的6篇⽂章。
⽅法⼆:分类相关
本⽅法是通过获取该⽂章的分类id,然后获取该分类下的⽂章,来达到获取相关⽂章的⽬的。
$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); ?>