You are here: Home » All Categories » WordPress » WP Trick » willin的相关文章代码

willin的相关文章代码

Jun 5th, 2010 11:18 | Leave a comment?(70) Go to comments

从网上搜来的相关文章代码有个弊病,就是代码放在网页某些地方(如放在文章内容后面)会搞乱 $post 的顺序,从而会影响一些如评论调用错乱的问题,我也因为此而一直用插件来实现这个功能。

低调高手 willin 在其文章《A9 主题的特色》里面贴出了 A9 主题所用的相关文章代码,代码由 willin 一手打造,很好用。

这段代码有2个与众不同的地方:
1. 先取每个 tags 的文章,当 tags 文章数量不足, 再取 category 补足。
2. 使用 $post 暂存, 代码放在网页任何地方都不不会搞乱 $post 顺序。

使用方法很简单,直接将下面的代码复制到需要使用的地方即可:

<h3>相关文章:</h3>
<ul>
<?php
$post_num = 5; // 设置相关文章数量.
global $post;
$tmp_post = $post;
$tags = ''; $i = 0; // 先取 tags 文章.
if ( get_the_tags( $post->ID ) ) {
foreach ( get_the_tags( $post->ID ) as $tag ) $tags .= $tag->name . ',';
$tags = strtr(rtrim($tags, ','), ' ', '-');
$myposts = get_posts('numberposts='.$post_num.'&tag='.$tags.'&exclude='.$post->ID);
foreach($myposts as $post) {
setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
$i += 1;
}
}
if ( $i < $post_num ) { // tags 文章数量不足, 再取 category 补足.
$post = $tmp_post; setup_postdata($post);
$cats = ''; $post_num -= $i;
foreach ( get_the_category( $post->ID ) as $cat ) $cats .= $cat->cat_ID . ',';
$cats = strtr(rtrim($cats, ','), ' ', '-');
$myposts = get_posts('numberposts='.$post_num.'&category='.$cats.'&exclude='.$post->ID);
foreach($myposts as $post) {
setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
}
}
$post = $tmp_post; setup_postdata($post);
?>
</ul>

贴完。

2010.6.6 Edit:

1. 评论中阿修kisa747指出“如果文章没有标签那么会出错”,这个问题阿修在评论里给出临时解决办法(已添加进上面的代码)【willin 已经修正】

2. 由于 willin 的源代码贴出错误,致使相关文章变成最新文章,我已经修正。

请在 2010.6.6 13:33 前 CP(Copy Paste) 代码的朋友重新 CP 使用。

2010.11.29 Update: 最新的代码请移步此 http://zww.me/archives/25353

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25166

Filed under

WP Trick

| Tags:

,

Related Posts

Most Popular

70 Comments.

⊕Leave a comment?
  1. 最有效的祛斑产品 最有效的祛斑产品 Internet Explorer 6.0Windows XP

    过来学习一下

    21楼
  2. zzzhu zzzhu Internet Explorer 7.0Windows XP

    我都是吓搞估

    22楼
  3. Terry Terry TheWorld BrowserWindows 7

    我用Related Posts,基本上都显示随机文章,很少看到相关文章,不知道是什么原因 :?:

    23楼
  4. Skyoy Skyoy Firefox 3.6.3Windows XP

    我把Related Posts插件取消了,也用来这个了。 :twisted:

    24楼
  5. 混生 混生 Maxthon 2.0Windows XP

    可以试试。

    25楼
  6. MOPVHS MOPVHS Google Chrome 5.0.375.55Windows XP

    willin和Z大依然那么细腻...

    26楼
  7. 全文rss 全文rss Google Chrome 5.0.375.55Windows 7

    这个不错的说!

    27楼
  8. 苏扬 苏扬 Firefox 3.6.3Windows 7

    思路蛮清晰的,虽然看不懂Php函数,但能看懂大致的意思!

    28楼
  9. 睡到自然醒blog 睡到自然醒blog Firefox 3.0.19Windows XP

    我用的是simple tag里的这个功能

    29楼
  10. ifenwen ifenwen Google Chrome 5.0.375.55Windows XP

    刚刚更新了下我的代码 确实这个强大 有了 还有分类作补充 ,比我原来的 要好 不会出现"无相关日志"了

    30楼
  11. 于泽鹏 于泽鹏 Google Chrome 5.0.375.55Windows Vista

    我考虑更换WP了!

    31楼
  12. willin willin Firefox 3.5.9Windows XP

    發現這裏也有, 而且是新的, 動作真快, 最要感謝你發現錯誤! 謝謝了!

    32楼
  13. 阿邙 阿邙 Internet Explorer 8.0 (Compatibility Mode)Windows 7

    没想到我成了你这的水王了...

    33楼
  14. 一心而已 一心而已 360Safe ExplorerWindows XP

    之前用的相关文章代码没有分类补全的功能,先试验一下。

    34楼
  15. 超人 超人 Google Chrome 5.0.375.70Windows 7

    那又可以少用一个插件了..~~~

    35楼
  16. 36楼
  17. 诸葛草帽 诸葛草帽 360Safe ExplorerWindows XP

    :razz: 好东西

    37楼
  18. 博客插件小总结 | blueandhack - pingback on 2010/08/04/ 18:08
    38楼
  19. 哈根达斯月饼 哈根达斯月饼 Internet Explorer 6.0Windows XP

    太高技术了吧,完全看不懂

    39楼

Leave a Reply


Trackbacks and Pingbacks: