WordPress.org

Make WordPress Core

Ticket #42379: 42379.diff

File 42379.diff, 2.1 KB (added by Iceable, 2 years ago)

Adds "Mine" filter to comments screen

  • src/wp-admin/includes/class-wp-comments-list-table.php

    diff --git src/wp-admin/includes/class-wp-comments-list-table.php src/wp-admin/includes/class-wp-comments-list-table.php
    index f87ce81..53363f1 100644
    class WP_Comments_List_Table extends WP_List_Table { 
    7777                global $post_id, $comment_status, $search, $comment_type;
    7878
    7979                $comment_status = isset( $_REQUEST['comment_status'] ) ? $_REQUEST['comment_status'] : 'all';
    80                 if ( !in_array( $comment_status, array( 'all', 'moderated', 'approved', 'spam', 'trash' ) ) )
     80                if ( !in_array( $comment_status, array( 'all', 'mine', 'moderated', 'approved', 'spam', 'trash' ) ) )
    8181                        $comment_status = 'all';
    8282
    8383                $comment_type = !empty( $_REQUEST['comment_type'] ) ? $_REQUEST['comment_type'] : '';
    class WP_Comments_List_Table extends WP_List_Table { 
    118118                        'moderated' => 'hold',
    119119                        'approved' => 'approve',
    120120                        'all' => '',
     121                        'mine' => '',
    121122                );
    122123
    123124                $args = array(
    class WP_Comments_List_Table extends WP_List_Table { 
    209210                                'comments'
    210211                        ), // singular not used
    211212
     213                        /* translators: %s: current user comments count */
     214                        'mine' => _nx_noop(
     215                                'Mine <span class="count">(%s)</span>',
     216                                'Mine <span class="count">(%s)</span>',
     217                                'comments'
     218                        ),
     219
    212220                        /* translators: %s: pending comments count */
    213221                        'moderated' => _nx_noop(
    214222                                'Pending <span class="count">(%s)</span>',
    class WP_Comments_List_Table extends WP_List_Table { 
    252260                                $current_link_attributes = ' class="current" aria-current="page"';
    253261                        }
    254262
     263                        if ( 'mine' === $status ) {
     264                                $current_user_id = get_current_user_id();
     265                                $num_comments->$status = get_comments(
     266                                        array(
     267                                                'user_id' => $current_user_id,
     268                                                'count'   => true,
     269                                        )
     270                                );
     271                                $link = add_query_arg( 'user_id', $current_user_id, $link );
     272                        } else {
     273                                $link = remove_query_arg( 'user_id', $link );
     274                        }
     275
    255276                        if ( !isset( $num_comments->$status ) )
    256277                                $num_comments->$status = 10;
    257278                        $link = add_query_arg( 'comment_status', $status, $link );