2011年02月08日 80条评论

输出自定义Trackbacks和Pingbacks的方法

我的主题一直都是评论和 Trackbacks/Pingbacks 分开输出的,以前用的是 welee 写的方法,后来我觉得不如统一用 wp_list_comments 来输出比较好,于是几个月前就自己写了个。最近有朋友问起,为了减少我的重复说明量,就用这篇文章简单说一下方法,以后有人问题可以直接给这篇文章的链接,同时增加 PV 量,哈哈哈。

因为 Trackbacks 和 Pingbacks 没头像,所以还是自定义一下输出结构,我的结构是

Trackbacks/Pingbacks的文章名及链接 + 类型 + 时间

具体可以点这里围观(评论框下面)。

第一步:自定义输出结构,把下面的 wp_list_comments 回调函数 custom_pings 的代码放到 functions.php(注意要放到 <?php ?> 之间)

function custom_pings($comment, $args, $depth) { // wp_list_comments()->pings callback by zwwooooo
    $GLOBALS['comment'] = $comment;
    if('pingback' == get_comment_type()) $pingtype = 'Pingback';
    else $pingtype = 'Trackback';
?>
    <li id="comment-<?php echo $comment->comment_ID ?>">
        <?php comment_author_link(); ?> - <?php echo $pingtype; ?> on <?php echo mysql2date('Y/m/d/ H:i', $comment->comment_date); ?>
<?php }

这是我的结构,可以根据自己需要的写。

第二步:在 comments.php 加上下面的调用代码,我一般放到评论框后面。

<?php //输出自定义Trackbacks和Pingbacks by zwwooooo
foreach($comments as $comment){
   if(get_comment_type() != 'comment' && $comment->comment_approved != '0'){ $havepings = 1; break; }
}
if($havepings == 1) : //判断是否有 Trackbacks/Pingbacks
?>
	<div class="trackbacks-pingbacks">
		<h3>Trackbacks and Pingbacks:</h3>
		<ul id="pinglist">
            <?php wp_list_comments('type=pings&per_page=0&callback=custom_pings'); ?>
		</ul>
	</div>
<?php endif; ?>

至于列表样式我就不写了,自己看 CSS 教程或者用 firebug 看我的主题结构吧。

zww
or
oooo

“输出自定义Trackbacks和Pingbacks的方法”有80条评论

  1. Veezy says:

    沙发 :shock:
    好像从没被捶背过...还不知道我那个捶背是什么样子

    1. zwwooooo says:

      @Veezy
      一样的,哈哈哈

  2. Suyos says:

    我也想处理一下pingback

    1. zwwooooo says:

      @Suyos
      那就动手吧

    2. Suyos says:

      @zwwooooo
      我想问问,用这个函数怎么显示Trackbacks和Pingbacks的数量

    3. zwwooooo says:

      @Suyos
      你指某篇文章的Trackbacks和Pingbacks总数量么?如果是的话,你可以看看这段

      foreach($comments as $comment){
         if(get_comment_type() != 'comment' && $comment->comment_approved != '0'){ $havepings = 1; break; }
      }

      这段是说,如果遍历到1条Trackbacks或者Pingbacks就$havepings赋值1并退出遍历,你要得到总数就不要退出遍历,加个计数器遍历完。

  3. 老王 says:

    仔细看了一遍,但我不懂Trackbacks/Pingbacks是干嘛用的 :grin:

    1. zwwooooo says:

      @老王
      可以不鸟

  4. 弱弱的说一句
    其实俺也不懂有啥用

  5. A.shun says:

    收藏

    1. zwwooooo says:

      @A.shun
      本来想合并,后来觉得还是分开好,起码自己用的主题分开好

  6. 不羡鱼 says:

    正好想在有空时把pingback和Trackback弄出来,就看到这篇文章。收藏。
    看代码是不包括评论部分。

    1. zwwooooo says:

      @不羡鱼
      哈哈,怎么会包括评论部分?本来就是要跟评论部分分开嘛

  7. 郑永 says:

    博客刚刚加上了 微博 登陆wordpress,建议你也加上啊,呵呵,以后可以直接评论了。

    1. zwwooooo says:

      @郑永
      什么微博?如果是国内的就算了。

    2. 郑永 says:

      @zwwooooo
      新浪或则腾讯。

    3. zwwooooo says:

      @郑永
      我觉得不玩国内的微博。

  8. Tiger says:

    受教
    可惜我就是不会CSS

    1. zwwooooo says:

      @Tiger
      ……可以尝试

    2. Tiger says:

      @zwwooooo
      有机会找个CSS学习下吧

    3. zwwooooo says:

      @Tiger
      稍微了解一下吧

  9. huangjun says:

    你真是敬业啊!过年还研究代码!

    1. zwwooooo says:

      @huangjun
      过年有啥不同呢?不就比平时花钱么?呵呵

  10. 很喜欢你评论框的效果!

  11. ztysky says:

    现在也在弄WP,你的博客不错,回头也用用你的代码,谢谢分享。

    1. zwwooooo says:

      @ztysky
      荒淫使用共享代码。

  12. Kars says:

    welee,好怀念啊~不知道他死到哪里去了、、好久没见到他了额、、

    1. zwwooooo says:

      @Kars
      对啊,让我记忆很深的是我的zBench提交官网后,很多人说我的zBench很像welee的那个主题,但我的主题提交官网2个月后welee的那个主题才出来,说明welee的主题很受欢迎,哈~

    2. Kars says:

      @zwwooooo
      大酥 穿越了、、 :mrgreen:

    3. zwwooooo says:

      @Kars
      我是被人说穿越的 :mrgreen:

  13. hostgator says:

    不懂。另外,welee很久不更新了,难道是结婚去了?

    1. zwwooooo says:

      @hostgator
      这就不知道了,我只是在博客之间跟他交流

  14. Kars says:

    自己用的是这个外国佬写的代码、、
    http://wpengineer.com/759/numbering-your-comments-pingbacks-trackbacks-or-all/

    可以把 trackbacks、pingbacks、comments 全部分离,并分别计数的、、貌似还带缓存的说、、 :mrgreen:

    1. zwwooooo says:

      @Kars
      原理差不多的,缓存就不懂鸟

  15. Youwei says:

    我直接屏蔽掉了。。只要评论就够了

    1. zwwooooo says:

      @Youwei
      一般是吧,哈

  16. 韩国 says:

    与评论分开有什么好处吗?

    1. zwwooooo says:

      @韩国
      这个跟好处没关系,只是主题设计考虑而已。

  17. 新的一年,逛逛博客拜拜年,祝博主2011顺风顺水!

    1. zwwooooo says:

      @左心房的洞
      祝你万事如意!

  18. Junan says:

    对Trackbacks和Pingbacks不太了解~~~ :mrgreen:

    1. zwwooooo says:

      @Junan
      那可以不鸟,哈

  19. 邓肯 says:

    这个我好像一直没用

    1. zwwooooo says:

      @邓肯
      一般可以不鸟的

  20. Firm says:

    Trackbacks 和 Pingbacks被我关闭了,因为太多人用它们来打广告了

    1. zwwooooo says:

      @Firm
      我那有过滤,哈

    2. Kars says:

      @zwwooooo
      怎么过滤的?不会是人肉的吧?

    3. zwwooooo says:

      @Kars
      小墙+没评论过的需要审核

发表评论

昵称 *

网址

B em del U Link Code Quote