Quelqu'un sait-il comment ajouter des liens de modération de commentaires rapides pour les utilisateurs autorisés à ajouter/modifier des messages et des commentaires? (Upprove/Unappove/Edit/Spam/Trash). Remarque: dans mon comments.php, j'appelle la boucle avec <?php wp_list_comments(); ?>
Par défaut, wp_list_comments()
appelle la classe Walker_Comment
. Sa méthode start_el()
appelle edit_comment_link()
et nous trouvons ici un filtre pour votre question: Elle s'appelle 'edit_comment_link'
et transmet deux variables, le texte du lien et l'ID de commentaire, que nous pouvons utiliser.
Les URL permettant de marquer un commentaire en tant que spam ou de le supprimer sont les suivantes:
wp-admin/comment.php?c=1&action=cdc&dt=spam
pour spam, etwp-admin/comment.php?c=1&action=cdc
pour la suppression.Nous pouvons ajouter un paramètre redirect_to=
pour nous renvoyer à l'article une fois le commentaire supprimé.
Voici un exemple de plug-in que je viens de pirater ensemble ( adresse GitHub ):
<?php # -*- coding: utf-8 -*-
/**
* Plugin Name: T5 Comment moderation links
* Version: 2012.06.04
* Author: Thomas Scholz <[email protected]>
* Author URI: http://toscho.de
* License: MIT
* License URI: http://www.opensource.org/licenses/mit-license.php
*/
if ( ! function_exists( 't5_comment_mod_links' ) )
{
add_filter( 'edit_comment_link', 't5_comment_mod_links', 10, 2 );
/**
* Adds Spam and Delete links to the Sdit link.
*
* @wp-hook edit_comment_link
* @param string $link Edit link markup
* @param int $id Comment ID
* @return string
*/
function t5_comment_mod_links( $link, $id )
{
$template = ' <a class="comment-edit-link" href="%1$s%2$s">%3$s</a>';
$admin_url = admin_url( "comment.php?c=$id&action=" );
// Mark as Spam.
$link .= sprintf( $template, $admin_url, 'cdc&dt=spam', __( 'Spam' ) );
// Delete.
$link .= sprintf( $template, $admin_url, 'cdc', __( 'Delete' ) );
// Approve or unapprove.
$comment = get_comment( $id );
if ( '0' === $comment->comment_approved )
{
$link .= sprintf( $template, $admin_url, 'approvecomment', __( 'Approve' ) );
}
else
{
$link .= sprintf( $template, $admin_url, 'unapprovecomment', __( 'Unapprove' ) );
}
return $link;
}
}
Capture d'écran avec TwentyEleven (ordre inversé par la feuille de style):
C’est ce que j’utilise (ajouté comme référence - la réponse de toscho IS MEILLEUR pour de nombreuses raisons):
<?php if (current_user_can('edit_post')) {
$id = get_comment_ID();
echo ' <a href="'.admin_url("comment.php?action=cdc&c=$id").'">[Delete]</a>';
echo ' <a href="'.admin_url("comment.php?action=cdc&dt=spam&c=$id").'">[Spam]</a>';
} ?>
La plupart des thèmes sont déjà accompagnés d'un lien "Modifier", je ne l'incluais donc pas.
Exemple de prévisualisation: