J'ai trouvé tellement d'informations et la plupart des tutoriels ne parlent que d'ajouter un filtre dans post/post personnalisé uniquement.
Je souhaite faire quelque chose de similaire à ce didacticiel dans la zone "Commentaires" du panneau d'administration.
Cependant, je ne sais pas si le descripteur parse_query traite également la requête dans cette zone? Quelqu'un pourrait avoir une suggestion sur le tutoriel, un plugin qui pourrait aider?
De this Answer , de @TheDeadMedic, voici une adaptation permettant d'afficher uniquement les commentaires d'un post_id
spécifique. Un lien vers cette action est inséré dans la ligne d'état.
Hello World
est le courrier avec l'ID 53.
Lorsque vous cliquez dessus, seuls les commentaires de cet article sont affichés dans l'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;
}
Recherchez les crochets ci-dessous, ils sont disponibles dans le fichier /wp-admin/includes/class-wp-comments-list-table.php
.
Cela vous donnera un panorama des possibilités de l'écran Commentaires.
manage_comments_custom_column
manage_comments_nav
comments_per_page
comment_status_links
admin_comment_types_dropdown
comment_edit_pre
comment_row_actions