在典型的 WordPress 主题中,您可以使用函数 `wp_list_comments()` 输出文章/页面的整个评论列表。但这对于自定义为该评论列表生成的 HTML 标记来说,并没有提供太多帮助。要为评论列表编写您自己的标记,您可以使用回调函数作为 `wp_list_comments()` 中的参数,因此它同样得到了很好的抽象。
在 `functions.php` 中
<?php
function my_custom_comments($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
<?php if ($comment->comment_approved == '0') : ?>
<em><?php _e('Your comment is awaiting moderation.') ?></em>
<?php endif; ?>
// Comments markup code here, e.g. functions like comment_text();
}
?>
在 `comments.php` 中
<?php
wp_list_comments("callback=my_custom_comments");
?>
按原样粘贴,这会破坏我的函数文件。
天啊,我发誓网上没有任何东西能彻底解释 WP 的评论。
我完全同意。我正在构建我的第一个主题,我无法在网上找到任何提供关于自定义评论部分的“教程式”分解的信息。太令人沮丧了。
天啊,我完全同意。
我第一次想使用我自定义的评论,却在任何地方都找不到任何信息?!
为什么没有人分享一些真正有帮助的东西?
好的理论。我喜欢它。感谢你的发布。
谢谢..非常好
它之所以会中断,是因为在末尾没有用闭合括号打开 php 标签。它应该像上面的代码一样。
这非常有帮助。通过基本的 php 知识并添加一些 php 标签,您的代码就能完美运行。我建议使用这些函数来获得期望的结果。
`cancel_comment_reply_link()`,`comment_author()`,`comment_author_email()`,`comment_author_email_link()`,`comment_author_IP()`,`comment_author_link()`,`comment_author_rss()`,`comment_author_url()`,`comment_author_url_link()`,`comment_class()`,`comment_date()`,`comment_excerpt()`,`comment_form_title()`,`comment_form()`,`comment_ID()`,`comment_id_fields()`,`comment_reply_link()`,`comment_text()`,`comment_text_rss()`,`comment_time()`,`comment_type()`,`comments_link`,`comments_number()`,`comments_popup_link()`,`comments_popup_script()`,`comments_rss_link()`,`get_avatar()`,`next_comments_link()`,`paginate_comments_links()`,`permalink_comments_rss()`,`previous_comments_link()`,`wp_list_comments()`
对文章的极好补充。谢谢! :)
如果您已经熟悉 PHP,则此代码非常有用,但它并不完整,并且会破坏 `functions.php` 文件。但是,我尝试了一下,并想出了一个可以直接粘贴到 `functions.php` 中的转换版本。
在 PasteBin 上查看代码
它经过测试,但不是彻底测试,因此请自行承担风险使用。但是,如果您使用 Ralph 发布的函数列表,则应该能够创建自定义评论。
确保使用相同的
Chris 在您的 `comments.php` 文件中发布的代码。
谢谢…我已经找了几天了。
我同意很难找到有关为 WordPress 评论进行自定义样式的信息。这是我最终使用的函数——希望这有帮助!…它允许进行大量自定义。如果要使用自己的图像而不是“神秘人物”或其他 Gravatar 默认图像,我还包含了一个用于更改默认 Gravatar 图像的函数。我的 gist 链接如下。
如果您想下载文件,请访问 gist:
https://gist.github.com/4192115
我对此非常感兴趣,您是否计划就此代码片段进行教程?如果这样,提前感谢您 :)
非常感谢 Rowe 提供的 php 代码片段。这绝对是为 WordPress 网站增加价值的额外内容,更不用说 CSS 提示和技巧了 ;-)
我认为您忘记在关闭函数之前添加闭合“`”标签。
看起来您的 HTML 被吞噬了,但如果您指的是 `<li>` 标签,则您应该特别将其省略。WordPress 会根据需要关闭它们。它需要您为线程评论执行此操作。
感谢 Chris 的分享。我读了很长时间了。就我个人而言,我不太关心我网站的评论部分。我只是使用 Disqus 并且非常喜欢它。超级简单易于管理。虽然没有太多自定义选项,但对我来说也足够了。但是,有时我的客户希望进行更多自定义,而这就是此代码派上用场的地方。再次感谢!
我知道这是一篇旧文章,但我仍然不确定我是否理解为什么将评论输出隐藏在 `wp_list_comments()` 中的回调函数后面比旧方法更好,在旧方法中,所有标记都很明显并且包含在 `comments.php` 文件中。
**如何在我的 WordPress 网站上添加像这样的评论框?**但是,粗体或斜体部分似乎不起作用!
抱歉,我收回刚才的话…它确实有效…希望在我的网站上添加这个评论框。
感谢分享。但我正在搜索评论模板的 CSS。
非常感谢
这很有用
谢谢先生。直截了当。 :)
刚刚注意到您代码片段中的回调代码有点问题,Chris——应该是
`wp_list_comments("callback"=>"my_custom_comments");`
那个 API 改变了吗?最佳实践不同了吗?
我们正在查看的这个评论线程上实际使用的是