分类
信息技术

WordPress博客相关博文调用代码

前几天“不能吧”博主问我要一个关于在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>&rarr;</span>', 'twentytwelve' ) ); ?>

显示效果见本博文后面。

这段代码的工作原理是根据文章的TAG标签值,调用相应的相关文章。如果没有TAG的话,则调用随机文章,一定程度上提高单用户的页面访问率——用户就喜欢用鼠标点击超链接。

它的功能很简单,没有缩略图的功能,这符合我一贯简洁的思路,希望也能满足有需要的朋友。能用代码,就少用插件,这是我一贯的WordPress作风。

有问题,请留言回复。

“WordPress博客相关博文调用代码”上的26条回复

@francis: 不同的观点吧。简洁的代码我觉得是可以用的,过于复杂的话就用插件吧。但插件太多了的后果,你是知道的。

我的作风是只要有现成的插件,就不去折腾代码,除非有好人提供现成的代码和容易看懂的使用方法。你这个方法我试了,简单易用,已经用上了。谢谢分享。

之前用过,后来用的插件,再后来什么都不用了。今天再启用吧,呵呵。中文在我那里(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里面有去掉首页显示的部分。

我今天发现倒数第八行中a标签有点小问题:

title=”Permanent Link to <?php the_title(); ?>”

,里面使用了全角引号

回复 土木坛子 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注