WordPress常用的实现相关文章的两种方法
标签相关文章
首先获取文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。下面是实现的代码:?
16171819202122232425262728293031323334353637383940<ulid=
"tags_related"
>
<?php
global
$post
;
$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
);?>
<li>*<ahref=
"<?phpthe_permalink();?>"
rel=
"bookmark"
title=
"<?phpthe_title_attribute();?>"
><?phpthe_title();?></a></li>
<?php
}
}
else
{
echo
'<li>*暂无相关文章</li>'
;
}
wp_reset_query();
}
else
{
echo
'<li>*暂无相关文章</li>'
;
}
?>
</ul>
使用说明:”不包括的分类ID” 指的是相关文章不显示该分类下的文章,将同行的 NULL 改成文章分类的ID即可,多个ID就用半角逗号隔开。因为这里限制只显示6篇相关文章,所以不管给 query_posts() 的参数 tag__in 赋多少个值,都是只显示一个标签下的 6 篇文章,除非第一个标签有1篇,第二个标签有2篇,第三个有3篇。。。。。。所以如果这篇文章有多个标签,那么我们采取的做法是随机获取一个标签的id,赋值给 tag__in 这个参数,获取该标签下的6篇文章。
分类相关文章
本方法是通过获取该文章的分类id,然后获取该分类下的文章,来达到获取相关文章的目的。
?161718192021222324252627282930<ulid=
"cat_related"
>
<?php
global
$post
;
$cats
=wp_get_post_categories(
$post
->ID);
if
(
$cats
){
$args
=
array
(
'category__in'
=>
array
(
$cats
[0]),
'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>*<ahref=
"<?phpthe_permalink();?>"
rel=
"bookmark"
title=
"<?phpthe_title_attribute();?>"
><?phpthe_title();?></a></li>
<?php
}
}
else
{
echo
'<li>*暂无相关文章</li>'
;
}
wp_reset_query();
}
else
{
echo
'<li>*暂无相关文章</li>'
;
}
?>
</ul>
下一篇:PHP 7.0.6 正式版发布:WordPress速度提升3倍!
winlogins.exe是什么文件?winlogins.exe是不是病毒
winsock2.6.exe是什么文件?winsock2.6.exe是不是病毒
WinDefendor.dll是什么文件?WinDefendor.dll是不是病毒
系统目录是什么文件?系统目录是不是病毒
wholove.exe是什么文件?wholove.exe是不是病毒
winn.ini是什么文件?winn.ini是不是病毒
w6oou.dll是什么文件?w6oou.dll是不是病毒
winduxzawb.exe是什么文件?winduxzawb.exe是不是病毒
wuammgr32.exe是什么文件?wuammgr32.exe是不是病毒
windiws.exe是什么文件?windiws.exe是不是病毒