我一直在尝试创建一个边栏小部件来显示特定类别的最近评论。我很难确定Wordpress如何知道评论来自哪些类别。
我查过了the codex on get_comments
function 但它似乎不允许从特定类别提取。我找到了some hints from Kovshenin\'s blog, 但似乎无法使其正常工作,因为我的尝试要么显示所有评论(忽略类别),要么根本不显示。
我正在根据Widget_Recent_Comments
(从中找到wp-includes/default-widgets.php
). 这是我到目前为止的情况。我认为输出是围绕这一区域控制的:
$output = \'\';
$title = apply_filters( \'widget_title\', empty( $instance[\'title\'] ) ? __( \'Recent Comments\' ) : $instance[\'title\'], $instance, $this->id_base );
if ( empty( $instance[\'number\'] ) || ! $number = absint( $instance[\'number\'] ) )
$number = 5;
$category_name = empty( $instance[\'category_name\'] ) ? \'\' : $instance[\'category_name\'];
$comments = get_comments( apply_filters( \'widget_comments_args\', array( \'number\' => $number, \'status\' => \'approve\', \'post_status\' => \'publish\' ) ) );
$output .= $before_widget;
if ( $title )
$output .= $before_title . $title . $after_title;
$output .= \'<ul id="recentcomments">\';
if ( $comments ) {
foreach ( (array) $comments as $comment) {
$output .= \'<li class="recentcomments">\' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x(\'%1$s on %2$s\', \'widgets\'), get_comment_author_link(), \'<a href="\' . esc_url( get_comment_link($comment->comment_ID) ) . \'">\' . get_the_title($comment->comment_post_ID) . \'</a>\') . \'</li>\';
}
}
$output .= \'</ul>\';
$output .= $after_widget;
echo $output;
以下是完整代码:
http://pastebin.com/VH666jty基本上,我的小部件类似于默认的最近评论小部件。只是它有一个可选的Display comments only from category/categories: ...
, 用户可以自己输入。
保留为空将显示所有类别的注释,同时放置一些类别段塞,用逗号分隔(例如:mycategory,othercategory
) 将仅显示来自这些选定类别的注释。