首先获取文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。下面是实现的代码:
<ul id="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>* <a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title_attribute()?>"><?php the_title()?></a></li>
<?php
}
}
else {
echo '<li>* 暂无相关文章</li>'
}
wp_reset_query()
}
else {
echo '<li>* 暂无相关文章</li>'
}
?>
</ul>
方法二:分类相关
本方法是通过获取该文章的分类id,然后获取该分类下的文章,来达到获取相关文章的目的。
<ul id="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>* <a href="<?php the_permalink()?>" rel="bookmark" title="<?php the_title_attribute()?>"><?php the_title()?></a></li>
<?php
}
}
else {
echo '<li>* 暂无相关文章</li>'
}
wp_reset_query()
}
else {
echo '<li>* 暂无相关文章</li>'
}
?>
</ul>
1. 建议使用get_post方法,通过get_post方法可以获取到固定文章的相关信息;2.如果你想在首页中显示固定的文章,你可以先查询出该文章的ID,该ID可以通过进入wordpess后台,点击编辑,然后查看链接可以得到,然后将该ID传入get_post方法,直接在你的首页显示echo get_post($id)->post_content就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)