如何在管理面板的“评论”中添加过滤器?

时间:2012-08-29 作者:user19815

我发现了很多信息,大多数教程都只讨论在帖子/自定义帖子中添加过滤器。

我想在管理面板的“评论”区域做一些类似于本教程的事情。

Add filter menu to admin list of posts (of custom type) to filter posts by custom field values

但是,我不确定parse\\u查询句柄是否也处理此区域中的查询?任何人都可能对教程和插件有建议,这可能会有所帮助吗?

1 个回复
SO网友:brasofilo

工作示例[Update]

来自this Answer, 由@TheDeadMedic改编,这里只显示特定post_id. 指向此操作的链接将插入到状态行中。

Hello World 是ID为53的帖子。

new comments status link

单击时,它仅在URL中显示该帖子的评论
example.com/wp-admin/edit-comments.php?comment_status=all&hello_world=1:

show comments of only one post

add_action( \'current_screen\', \'wpse_72210_comments_exclude_lazy_hook\', 10, 2 );

/**
 * Delay hooking our clauses filter to ensure it\'s only applied when needed.
 */
function wpse_72210_comments_exclude_lazy_hook( $screen )
{
    if ( $screen->id != \'edit-comments\' )
        return;
    
    // Check if our Query Var is defined    
    if( isset( $_GET[\'hello_world\'] ) )
        add_action( \'pre_get_comments\', \'wpse_63422_list_comments_from_specific_post\', 10, 1 );

    add_filter( \'comment_status_links\', \'wpse_63422_new_comments_page_link\' );
}

/**
 * Only display comments of specific post_id
 */ 
function wpse_63422_list_comments_from_specific_post( $clauses )
{
    $clauses->query_vars[\'post_id\'] = 53;
}

/**
 * Add link to specific post comments with counter
 */
function wpse_63422_new_comments_page_link( $status_links )
{
    $count = get_comments( \'post_id=53&count=1\' );

    if( isset( $_GET[\'hello_world\'] ) ) 
    {
        $status_links[\'all\'] = \'<a href="edit-comments.php?comment_status=all">All</a>\';
        $status_links[\'hello\'] = \'<a href="edit-comments.php?comment_status=all&hello_world=1" class="current">Hello World (\'.$count.\')</a>\';
    } 
    else 
    {
        $status_links[\'hello\'] = \'<a href="edit-comments.php?comment_status=all&hello_world=1">Hello World (\'.$count.\')</a>\';
    }
    
    return $status_links;
}
有用的钩子搜索下面的钩子,它们可以在文件中找到/wp-admin/includes/class-wp-comments-list-table.php.

它将为您提供评论屏幕可能性的全景图。

行动manage_comments_custom_column
  • manage_comments_nav
  • 结束