web-dev-qa-db-fra.com

Afficher la date du commentaire sur WP_Post_Comments_List_Table

J'essaie d'afficher chaque date de commentaire sur le tableau de la liste de commentaires sur l'écran d'édition post. Actuellement, seuls le nom de l'auteur, l'adresse IP et le contenu du commentaire sont affichés.

https://developer.wordpress.org/reference/classes/wp_post_comments_list_table/

Des indices?

Merci

1
b0nd

Donc, il ne semble pas que vous puissiez faire "correctement" beaucoup pour résoudre ce problème, cependant, vous pouvez prendre quelques conseils de cette réponse et l'appliquer à votre problème:

<?php

add_filter( 'get_comment_author_IP', function( $comment_author_IP, $comment_ID, $comment )
{
    global $pagenow;

    if( is_admin() && 'post.php' === $pagenow && isset( $_GET['post'] ) ) {
        $comment_date = do_something_to_get_comment_date($comment_ID);
        $comment_author_IP .= ' <span>Posted On:</span> ' . $comment_date;
    }

    return $comment_author_IP;
}, 10, 3 );

Cela vous permet de modifier le contenu renvoyé avec l'adresse IP du commentaire. Vous devez absolument vous assurer que votre contrôle if ne modifie que les données renvoyées dans le cas spécifique où vous en avez besoin. Vous devrez peut-être jouer avec la façon d'écrire cette condition pour éviter que vos données supplémentaires ne fuient à des endroits qu'il ne devrait pas être.

Mise à jour avec le code fonctionnel

La réponse précédente consistait principalement à deviner ce que vous deviez faire, mais j’ai fait quelques tests sur ma propre installation WP. Un problème avec l'adresse IP de commentaire prioritaire est qu'il est utilisé pour former un lien permettant de rechercher des commentaires à partir de cette adresse IP. Au lieu de cela, nous utiliserons comment_author puisqu'il ne s'agit pas d'une chaîne fonctionnelle dans l'interface utilisateur.

En outre, la porte que j'ai ajoutée était erronée, car les commentaires sont entrés AJAX lors de la modification d'un message. J'ai donc également mis à jour les contrôles:

add_filter( 'get_comment_author', function( $comment_author, $comment_ID, $comment )
{
    global $pagenow;

    if ( ! is_admin() ) {
        return $comment_author;
    }

    if ( ! isset( $_POST['action'] ) || 'get-comments' !== filter_var( $_POST['action'], FILTER_SANITIZE_STRING ) ) {
        return $comment_author;
    }

    $comment_author .= ' | ' . get_comment_date( '', $comment_ID );
    return $comment_author;
}, 10, 3 );
1
phatskat