这个是一个朋友需要的,顺便贴出来。
对于熟悉php的盆友这很简单,但还是有很多盆友不懂的,但CP(CopyPaste)肯定懂……但……没有但了……
直接使用的代码可以到这里CP《willin的相关文章代码》(老代码)
或者去willin那里《A9 主题的特色》
上面纯粹废话,目的是一定的文章长度才能配合好左边小张的广告图片,哇咔咔
好,废话完,正题!
把下面的代码扔进主题的 functions.php 里面:
(2010.11.29 Update:下面这段代码有些小bug,具体移步到这里 https://zww.me/archives/25353 ,根据新的代码对比修正——替换第5行~11行相近的内容)
/* Related Posts 函数:出自kan.willin.org,函数修改zww.me */ function RelatedPosts($post_num = 5) { global $post; if(is_single()) {//只在文章页使用 $related_posts = '<h3>Related Posts:</h3><ul>'; $exclude_id = $post->ID; // 單獨使用要開此行 $posttags = get_the_tags(); $i = 0; if ( $posttags ) { $tags = ''; foreach ( $posttags as $tag ) $tags .= $tag->name . ','; $args = array( 'post_status' => 'publish', 'tag_slug__in' => explode(',', $tags), // 只選 tags 的文章. '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(); $related_posts .= '<li><a href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_title().'</a></li>'; $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(); $related_posts .= '<li><a href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_title().'</a></li>'; } wp_reset_query(); } $related_posts .= '</ul>'; return $related_posts; } }
然后用这个调用:
<?php if(function_exists('RelatedPosts')){RelatedPosts(5);} ?>
(里面的5就是显示相关的文章数量)
PS:其实那位折腾的朋友不是这样调用的,加了个自动插入相关文章到文章页面和feed输出代码,就是再把下面这段代码扔functions.php:
function insertfooter($content) { if( is_single() || is_feed()) {//文章页和feed输出 $content.= RelatedPosts(5);//文章结尾插入相关文章 } return $content; } add_filter ('the_content', 'insertfooter');
完了。- -
zww
赏
oooo
or
- 本文标题:willin版相关文章代码写成函数
- 本文链接:https://zww.me/archives/25294
- 发布时间:2010年09月01日 20:29
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
华丽的沙发,不解释~
@A.shun 错别字的沙发
om威武~
@A.shun 嘿嘿
有用。看一下
@BoKeam 玩吧
抢地板
@快播电影 地板要拖地的哦
我原来用的插件现在也用的代码,让人家给加的,呵呵
@软件盒子 呵呵,这个不复杂,复杂的是写代码的
用以前的那个加入到single.php,要是文章没有tag,就会出错,很郁闷
@Dianso 那就保持文章都有标签
这样是不是又少了一个插件?
@快播电影 本来就是,不过随意吧,插件方便
华丽的文囧文,不解释
@winy 哈哈,你说对鸟
现在依旧在纠结是否应该尽量把插件代码化。。。
指点下我吧
@ZYW 不用太纠结,合适就好
好复杂的函数
@我心飞翔 有点复杂
可以少一个插件,之前这是这么做的。
现在只在用一个插件。
@cho 1个插件,强
下次改版再加到我的主题!感谢分享~
@Max Lee 随便用
插件党路过。。
有用!
willin东西用了不少,下次我也把这个加上,,,
@fblue 很多喜欢用代码的博主用willin的多
对代码不是很熟悉,直接装了插件。
@zrqx008 插件简单
[...] This post was mentioned on Twitter by Max Lee, zwwooooo. zwwooooo said: willin版相关文章代码写成函数 http://goo.gl/fb/igT4R [...]
@大智若鲁 唉,文章没内容么?
标题有歧义,建议加 []
@hzlzh 呵呵,能明白就行
已经用上此功能~~
嗯 貌似我现在用的是插件 有空改成代码 参考人家的插件改改
@丕子 插件移植差不多啦