web-dev-qa-db-ja.com

管理パネルの「コメント」にフィルタを追加するにはどうすればいいですか?

私は非常に多くの情報を見つけました、そして、チュートリアルのほとんどはポスト/カスタムポストだけにフィルターを加えることについて話します。

私は管理パネルの 'コメント'エリアでこのチュートリアルに似たことをしたいです。

カスタムフィールドの値で投稿をフィルタリングするために(カスタムタイプの)投稿の管理リストにフィルタメニューを追加します

しかし、parse_queryハンドルがこの領域の照会も処理するかどうかわかりませんか。誰かがチュートリアルについての提案を持っているかもしれません、役立つかもしれないプラグイン?

4
user19815

作業例  [更新]

From この回答 、@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で利用可能です。

それはあなたにコメント画面のための可能性のパノラマを与えるでしょう。

行動

フィルター

4
brasofilo