前几天“不能吧”博主问我要一个关于在WordPress博客中实现无插件的相关文章代码,这段代码其实很简单(我不记得是从哪里获得的,如有谁清楚,请提供作者信息):
<?php
$backup = $post;
$tags = wp_get_post_tags($post->ID);
$tagIDs = array();
if ($tags) {
echo '<h3>相关日志</h3>';
echo '<ul>';
$tagcount = count($tags);
for ($i = 0; $i < $tagcount; $i++) {
$tagIDs[$i] = $tags[$i]->term_id;
}
$args=array(
'tag__in' => $tagIDs,
'post__not_in' => array($post->ID),
'showposts'=> 5, //设定相关日志数量,可以自行更改;
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title=”<?php the_title(); ?>”><?php the_title(); ?></a></li>
<?php endwhile;
echo '</ul>';
} else { ?>
<ul>
<?php
query_posts(array('orderby' => 'rand', 'showposts' => 5)); //如果无相关日志,即提供随机日志,数量5可以更改;
if (have_posts()) :
while (have_posts()) : the_post();?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile;endif; ?>
</ul>
<?php }
}
$post = $backup;
wp_reset_query();
?>
将这段代码贴到想要显示相关日志的地方,即可实现有相关日志显示相关日志,无相关日志显示随机日志的目的。我是放在主题文件(默认的2012主题)content.php 中的下列语句后:
<?php the_content( __( 'Continue reading <span>→</span>', 'twentytwelve' ) ); ?>
显示效果见本博文后面。
这段代码的工作原理是根据文章的TAG标签值,调用相应的相关文章。如果没有TAG的话,则调用随机文章,一定程度上提高单用户的页面访问率——用户就喜欢用鼠标点击超链接。
它的功能很简单,没有缩略图的功能,这符合我一贯简洁的思路,希望也能满足有需要的朋友。能用代码,就少用插件,这是我一贯的WordPress作风。
有问题,请留言回复。
“WordPress博客相关博文调用代码”上的26条回复
我是用插件的,我的原则是插件是万能的,但是最近的速度有点慢,也在考虑减少插件的使用量
@francis: 不同的观点吧。简洁的代码我觉得是可以用的,过于复杂的话就用插件吧。但插件太多了的后果,你是知道的。
好吧,我非常老实的交代,这段代码的作者其实
真不是我
不解,到底是你还是不是你?
开个玩笑,象我这等菜鸟,肯定不是我啦~
我的作风是只要有现成的插件,就不去折腾代码,除非有好人提供现成的代码和容易看懂的使用方法。你这个方法我试了,简单易用,已经用上了。谢谢分享。
+1,我是因为不了然。
@勺子: 你是文艺青年,不懂这些也正常。
之前用过,后来用的插件,再后来什么都不用了。今天再启用吧,呵呵。中文在我那里(2013主题)显示的是乱码,改成英文了。
这种代码,很难追踪溯源了,就算作公共知识财产吧,哈哈
发现竟然首页也出现了相关文章……能否不让首页显示相关日志?
找到你这段代码的其中一个源头了,这里:http://jo2.org/wordpress%E6%97%A0%E6%8F%92%E4%BB%B6%E5%AE%9E%E7%8E%B0%E7%9B%B8%E5%85%B3%E6%97%A5%E5%BF%97%E5%8A%9F%E8%83%BD/
把代码插入到single.php就是只单篇显示了,但是位置有些偏左,暂时还没有想到解决办法。就先这样了,有空了再调试调试。
在这段代码的开头加上
在结尾加上
这样就不会在首页也显示了。
首页的点击率还不错。
留的代码都不能显示啊,你可以看看我的文章,http://www.anxinblog.org/wordpress-tian-jia-huanrao-guanggao.html里面有去掉首页显示的部分。
这个不难,加个函数判断一下是不是日志页即可。
Willin Kan 大师写的
多谢!我总算找到了原作者。
我也是用插件的。哈哈哈…懒得折腾代码了,虽然我标榜生命在于折腾。
功能很弱。
这个就满足不了所有人的要求了,对我来说,够用了。
那么第一段的代码是贴在functions.php里的任意位置?
不是。而是放在调用日志的主题文件中,位置你自己定。
很多主题会自带相关文章的代码,直接用也省事,我的博客RSS也输出了相关文章,改天也贡献出来一下,嘿嘿
@随望淡思: 期待拜读呀。
我今天发现倒数第八行中a标签有点小问题:
,里面使用了全角引号
赞细心态度!已改正。