web-dev-qa-db-fra.com

Masquer les notifications concernant les nouveaux commentaires

Ceci est un suivi de cette question .

J'ai maintenant ajouté le code de cette page et cela a permis de masquer les commentaires relatifs aux autres auteurs.

Il ne me reste plus qu'à supprimer la notification, car elle apparaît pour d'autres auteurs que ceux auxquels le commentaire est adressé: enter image description hereenter image description here

Est-ce que c'est possible?

1
Aztrid

Basée sur le code de , une autre question à laquelle vous avez fait référence , j'ai ajouté le changement en modifiant le nombre total de commentaires à l'aide de jQuery:

add_filter( 'the_comments', 'wpse_236055_filter_comments' );
add_action( 'admin_head', 'wpse_236055_comment_notification' );

function wpse_236055_filter_comments( $comments ){ // Display comments related to the author
    global $pagenow, $user_ID, $comment_count;

    wp_get_current_user();
    if ( $pagenow == 'edit-comments.php' && current_user_can( 'author' ) ) {
        foreach( $comments as $i => $comment ) {
            $the_post = get_post( $comment -> comment_post_ID );
            if ( $comment -> user_id != $user_ID  && $the_post -> post_author != $user_ID ) {
                unset( $comments[$i] );
            }
        }
    }
    $comment_count = count( $comments );
    // echo '<!-- DEBUG PRINT --> <pre>'; print_r( $comment_count ); echo '</pre>';
    return $comments;
}

function wpse_236055_comment_notification( $comments ) { // Only show total count of comment related to the author
    global $pagenow, $comment_count;
    $site_name = 'Comments (' . count( $comments ) . ') ‹ ' . get_bloginfo( 'name' ) .  ' — WordPress';

    if ( !current_user_can( 'administrator' ) ) {
        ?>
        <script type="text/javascript">
            jQuery( document ).ready( function( $ ) {
                $( '.pending-count' ).html( '<?php echo $comment_count; ?>' );
                $( '.comment-count-pending' ).html( '<?php echo $comment_count; ?>' );
            } );
        </script>
        <?php
        }
    if ( $pagenow == 'edit-comments.php' && !current_user_can( 'administrator' ) ) {
        ?>
        <script type="text/javascript">
            jQuery( document ).ready( function( $ ) {
                $( document.title = '<?php echo $site_name; ?>' );
            } );
        </script>
        <?php
    }
}

Par conséquent, l'élément de menu Commentaires n'affichera que le nombre de commentaires liés à l'auteur au lieu du nombre total de commentaires. Cela a été testé sur mon côté et cela fonctionne.

2