在最近的评论小工具中显示附件、帖子和页面

时间:2014-08-02 作者:user3720387

以下代码(旧帖子为here 作者是diggy) 很有用,但我想在最近的评论小部件上显示帖子和页面,而不仅仅是附件。

function wpse80087_widget_comments_args( $args )
{
    $args = array( \'number\' => 5, \'post_type\' => \'attachment\', \'status\' => \'approve\', \'post_status\' => \'inherit\' );
    return $args;
}
add_filter( \'widget_comments_args\', \'wpse80087_widget_comments_args\', 10, 1 );
有可能吗?

解决方案:

幸亏Pieter GoosenBirgire.

First step:

Plugin

Second step:

作用php

function wpse80087_widget_comments_args( $args ) {
    $args = array( 
       \'number\' => 9, 
       \'post_type\' => array(\'attachment\', \'post\', \'page\'),
    );
    return $args;
}
add_filter( \'widget_comments_args\', \'wpse80087_widget_comments_args\', 10, 1 );

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您似乎已经在使用从该站点找到的自定义函数。你应该相信该代码的原始作者。

这个widget_comments_args Wordpress3中引入了过滤器。4、该过滤器的记录不完整。此筛选器使用get_comments(), 因此,您也可以使用相同的参数。这里是过滤器wp-includes/default-widgets.php#L847

847                 /**
848                  * Filter the arguments for the Recent Comments widget.
849                  *
850                  * @since 3.4.0
851                  *
852                  * @see get_comments()
853                  *
854                  * @param array $comment_args An array of arguments used to retrieve the recent comments.
855                  */
856                 $comments = get_comments( apply_filters( \'widget_comments_args\', array(
857                         \'number\'      => $number,
858                         \'status\'      => \'approve\',
859                         \'post_status\' => \'publish\'
860                 ) ) );
但在中存在一个问题get_comments() 因为它只接受一种post类型,而不是数组或字符串,这实际上很有趣。这周围有很多。

网站成员之一@birgire 编写了一个名为wp-comments-from-mulitple-post-types 添加以下功能:get_commentsWP_Comment_Query() 接受多种帖子类型。你可以下载他的插件here

安装后,现在可以像这样使用代码

function wpse80087_widget_comments_args( $args ) {
    $args = array( 
       \'number\' => 5, 
       \'post_type\' => array(\'attachment\', \'post\',\' page\'),
     );
    return $args;
}
add_filter( \'widget_comments_args\', \'wpse80087_widget_comments_args\', 10, 1 );

EDIT

从OP的反馈来看statuspost_status 不起作用,只返回一种帖子类型。删除这些参数后,一切正常。请参阅上面更新的代码

SO网友:Brad Dalton

使用widget\\u posts\\u args修改该默认小部件的get\\u comments函数中的args。

类似这样:

function wpsites_widget_comments_args( $args ) {
$args = array( 
\'post_type\'   => array( \'attachment\', \'post\', \'page\'),
\'number\'      => $number,
\'status\'      => \'approve\',
\'post_status\' => \'publish\'  );

return $args;
}
add_filter( \'widget_comments_args\', \'wpsites_widget_comments_args\', 10, 1 );
您可以使用get_comments 参数,否则您可以通过code for the recent comments widget 从WordPress>wp includes>default widgets。php文件,并将get\\u comments函数替换为WP\\u Query,以在子主题或插件中创建自定义的最近评论小部件

结束

相关推荐

以数组形式返回PAGINATE_COMMENTS_LINKS()

这个documentation 指定:类型(字符串)(可选)控制返回值的格式。可能的值包括:“普通”-链接由换行符分隔的字符串</“数组”-分页链接列表的数组,可完全控制显示为了将推特引导分页样式添加到wordpress评论分页中,我希望返回是一个数组。当我在通话中添加$args时,我得不到任何回报。我的代码:<ol class=\"commentlist\" style=\"list-style: none;\"> <?php wp_list_comments(\