私は非常に多くの情報を見つけました、そして、チュートリアルのほとんどはポスト/カスタムポストだけにフィルターを加えることについて話します。
私は管理パネルの 'コメント'エリアでこのチュートリアルに似たことをしたいです。
カスタムフィールドの値で投稿をフィルタリングするために(カスタムタイプの)投稿の管理リストにフィルタメニューを追加します
しかし、parse_queryハンドルがこの領域の照会も処理するかどうかわかりませんか。誰かがチュートリアルについての提案を持っているかもしれません、役立つかもしれないプラグイン?
From この回答 、@TheDeadMedicによると、ここでは特定のpost_id
からのコメントのみを表示するようにしました。このアクションへのリンクがステータス行に挿入されています。
Hello World
はID 53の投稿です。
クリックすると、URL内のその投稿のコメントのみが表示されます。example.com/wp-admin/edit-comments.php?comment_status=all&hello_world=1
:
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
comments_per_page
comment_status_links
admin_comment_types_dropdown
comment_edit_pre
comment_row_actions