wordpress无插件实现相关日志功能

前几天我才写了一篇WordPress Related Posts相关日志插件的文章,刚刚搜索WP主题的时候无意中发现了无插件实现相关日志的方法,心中犹豫着要不要写出来,怕被人说俺出尔反尔.但最终我还是战胜了自我,实现了升华.

不用插件,就意味着要写代码,而且写得不是一般地多.相关代码如下:

<?php
	$backup = $post;
	$tags = wp_get_post_tags($post->ID);
	$tagIDs = array();
	if ($tags) {
	echo '<h4>相关日志</h4>';
	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'=>4,//显示相关日志篇数
	'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' => 8));// 显示随机日志篇数
	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();
?>

把以上代码加入到主题的文章模板(single.php)中,一般是在<?php comments_template(); ?>前面,就可以实现相关日志和随机日志的功能了.

只不过这个功能比较简单,只能实现文章标题列表,没有文章日期文章评论文章摘要之类的,它的优势在于可以少装一个插件.所以到底是否使用WordPress Related Posts插件,大家见仁见智了.

另:鉴于代码比较多,可以新建一个PHP文件来放置,命名为related.php,然后在single.php的相关位置插入调用代码:

<?php include (TEMPLATEPATH . '/related.php'); ?>

就行了.

很明显,这些代码是可以改进的…期待牛人的改进,但要是代码写多了,不就和启用插件没什么区别了吗?纠结啊…

1 评论

发表评论

电子邮件地址不会被公开。