WordPress 代码实现相关文章(列表模式)功能

4,246
WordPress 代码实现相关文章(列表模式)功能
  • 4.75 / 5 5
4.75分(4票)

之前分享的相关文章代码化功能是仿无觅的图文模式,现在分享的一个是文章列表陈列模式。代码最初来自 Willin Kan,经过zwwooooo 的修改优化。不得不说,这个代码所实现的相关文章的相关度非常高(优先通过 Tags 标签相关,之后是同分类下文章,排除当前文章)。要是能修改一下能用在图文模式就完美了。

WordPress 代码实现相关文章(列表模式)功能代码

在你的主题需要显示效果文章的地方加入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<h3>Related Posts</h3>
<ul>
<?php
$post_num = 5; // 數量設定.
$exclude_id = $post->ID; // 單獨使用要開此行 //zww: edit
$posttags = get_the_tags(); $i = 0;
if ( $posttags ) {
	$tags = ''; foreach ( $posttags as $tag ) $tags .= $tag->term_id . ','; //zww: edit
	$args = array(
		'post_status' => 'publish',
		'tag__in' => explode(',', $tags), // 只選 tags 的文章. //zww: edit
		'post__not_in' => explode(',', $exclude_id), // 排除已出現過的文章.
		'caller_get_posts' => 1,
		'orderby' => 'comment_date', // 依評論日期排序.
		'posts_per_page' => $post_num
	);
	query_posts($args);
	while( have_posts() ) { the_post(); ?>
		<li><a rel="bookmark" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
	<?php
		$exclude_id .= ',' . $post->ID; $i ++;
	} wp_reset_query();
}
if ( $i < $post_num ) { // 當 tags 文章數量不足, 再取 category 補足.
	$cats = ''; foreach ( get_the_category() as $cat ) $cats .= $cat->cat_ID . ',';
	$args = array(
		'category__in' => explode(',', $cats), // 只選 category 的文章.
		'post__not_in' => explode(',', $exclude_id),
		'caller_get_posts' => 1,
		'orderby' => 'comment_date',
		'posts_per_page' => $post_num - $i
	);
	query_posts($args);
	while( have_posts() ) { the_post(); ?>
		<li><a rel="bookmark" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
	<?php $i++;
	} wp_reset_query();
}
if ( $i  == 0 )  echo '<li>没有相关文章!</li>';
?>
</ul>

具体的css样式需要自己来啦。

相关文章:《WordPress纯代码高仿 无觅相关文章 图文模式功能

喵~本文目前有3条留言,欢迎发表评论!

  1. 板凳也不错
    :

    我的http://www.caifan.org/535.html

    [回复]
  2. 传说中的沙发
    :

    你好,麻烦你一下,我的文章底部添加了一个相关文章的代码,就是多说
    上头的那一段请问如何设置成两列显示,请大侠给指点代码分享一下
    http://www.caifan.org/535.html

    [回复]
    • CSS 的问题,具体直接折腾吧

      [回复]

打破沉默,我来发表评论鸟~