回调函数个性化 Wordpress 评论样式

  在看本文中前,建议各位先在下面留言试试小站最新的评论样式。因为之前遵从 zww建议,我把每页评论数从10条调整到25条,这样可以方便喜欢往前翻阅评论的访客,不过这样一来,就不可避免地拉长了每页显示的高度,这可就要累坏了各位的滚轮鼠标,出于人性化的考虑,我今天修改了一下 Wordpress 评论样式,缩短了每条评论所占的高度,所以现在看起来评论格式就紧凑多了。下面简单记录一下修改过程中的要点。

  我们都知道,Wordpress 2.7+的主题中被引入了 wp_list_comments 函数,可不要小看这一句函数啊,变化无穷哟。今天对评论样式的修改就是建立在 wp_list_comments 的 callback 回调函数上。

  首先在 Wordpress 主题的 functions.php 中添加对评论样式定义的 mytheme_comment 函数,默认值如下:

function mytheme_comment($comment, $args, $depth) {
   $GLOBALS['comment'] = $comment; ?>
   <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
     <div id="comment-<?php comment_ID(); ?>">
      <div class="comment-author vcard">
         <?php echo get_avatar($comment,$size='32',$default='<path_to_url>' ); ?>

         <?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
      </div>
      <?php if ($comment->comment_approved == '0') : ?>
         <em><?php _e('Your comment is awaiting moderation.') ?></em>
         <br />
      <?php endif; ?>

      <div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),'  ','') ?></div>

      <?php comment_text() ?>

      <div class="reply">
         <?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
      </div>
     </div>
<?php
        }

  所谓的默认值,就是在不调用该函数时,Wordpress 评论就按照上面的函数显示,也就是我之前的评论样式。这就可以根据每个主题,不同的需要自行修改了,稍微懂一些 Html 的朋友就可以自己 DIY 一下,别被其中的 php 吓倒了,梳理清楚就会发现并不难。

  然后在 Wordpress 主题的 comments.php 中用 callback 回调函数引入之前定义的 mytheme_comment 函数,方法如下:

<ul class="commentlist">
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
</ul>

  最后再扩展一下关于 callback 回调的用法,如果你的主题已经引入了 mytheme_comment 函数,那你不妨参考下 Willin 大师的迷你版 gravatar 头像缓存方法。我本来是用 Wordpress 2.7+主题 gravatar 头像缓存方法的,今天多亏 callback 回调函数 mytheme_comment,我也可以用 Willin 大师的方法了,这样也就避免了 Wordpress 版本升级带来的更新麻烦咯。

本文已盖 84 层楼

  1. 回复 biao166 说:

    在自己博客试用了一下,但无法回复…………气死我呢》》》》

  2. 回复 羽中 说:

    不错,我来研究下把它搬到typecho上~

  3. 回复 阿修 说:

    话说我的主题一直都是用
    wp_list_comments('type=comment&callback=mytheme_comment');这个函数。
    可能主题太老啦吧~~哈哈

  4. 回复 happyet 说:

    我没有看懂。。。 :sad:

  5. WP的啊,那我只有凑热闹了。

  6. 回复 石老人 说:

    感觉有点密,不过确实缩短了长度

  7. 回复 kenshin 说:

    我怎么没什么感觉???

  8. 回复 星网 说:

    头像在左边~!好不习惯~! :arrow:

  9. 回复 hzlzh 说:

    问个问题,比如我的站 三处调用G头像,回复,评论插件,以及最新评论的侧边栏
    -------
    觉得直接把原函数改掉最好,否则 出现这种情况:一个陌生的email在 层叠的回复里回复,使用的是插件里的函数,直接去本地找肯定没有头像,于是杯具了!

  10. 回复 漠天 说:

    万戈,请教你一件事,我用的inove的主题,但是我在向function.PHP里添加函数时通常会出现错误时怎么回事。

  11. 回复 LAONB 说:

    这样看着多热闹。 :cool:

  12. 昨天我用函式庫文檔自己組了一個國旗+UA的演示 :lol: :lol:

  13. 滿滿的 你吃我的迴響

  14. 回复 猴子 说:

    :arrow: 实在是眼拙,看不出哪里变化。 :evil:

  15. 回复 JuJue 说:

    好象...是有一点点变化? 其实我没看出来 :wink:

  16. 回复 超人 说:

    哪里有什么变化了。。

  17. 回复 hzlzh 说:

    :roll: 俗话说 挤挤更健康~~我也来喽

  18. 回复 cyusyu 说:

    学着把我的整一下

  19. 回复 潘蟹蟹 说:

    天冷,大家挤在一起暖和。

  20. 回复 zwwooooo 说:

    太紧凑了,我情愿滚多两下 :twisted: 个人感觉,因为我滚惯了,我的是30层,哇咔咔,请忽视

  21. 回复 江流 说:

    看看效果 果然密集了很多

  22. 那我先看看啥变化 哈哈~~ :!:

  23. 回复 Showfom 说:

    其实也不是很好看 囧

  24. 做博客的果然用FF浏览器的居多 :twisted:

  25. 俺博客没用wp的。。。

  26. 回复 evlos 说:

    哎呀呀,试一下试一下 ~

  27. 回复 dot 说:

    紧凑多了,只是看起来稍显密实

  28. 回复 林木木 说:

    用回调方式,评论的样式自定义性强多了!

  29. 回复 bolo 说:

    呵呵,慢慢进步嘛

  30. 回复 Google不爱我 说:

    试一下试一下~ :smile: :smile: :smile:

  31. 回复 huangjun 说:

    我也帮忙盖一层,看什么时候可以翻页。

  32. 回复 619 说:

    没啥感觉,再来一条 :razz:

  33. 回复 619 说:

    我赶紧试试先 :razz:

  34. 回复 Nox 说:

    我的沙发,我热哦。。

  35. 回复 王盼盼 说:

    我不是抢沙发,是测试。

Leave a comment

您已输入0

三言两语

我的生活心情语录

工作手札

路漫漫其修远兮

精品推荐

好东西要分享

嘻哈娱乐

八卦趣事一笑而过

电脑网络

全新技术尽搜罗

转来载去

文人墨客美文赏析