diff -r c7c34916027a -r 177826044cd9 wp/wp-admin/includes/class-wp-comments-list-table.php
--- a/wp/wp-admin/includes/class-wp-comments-list-table.php Mon Oct 14 18:06:33 2019 +0200
+++ b/wp/wp-admin/includes/class-wp-comments-list-table.php Mon Oct 14 18:28:13 2019 +0200
@@ -45,17 +45,19 @@
add_filter( 'comment_author', array( $this, 'floated_admin_avatar' ), 10, 2 );
}
- parent::__construct( array(
- 'plural' => 'comments',
- 'singular' => 'comment',
- 'ajax' => true,
- 'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
- ) );
+ parent::__construct(
+ array(
+ 'plural' => 'comments',
+ 'singular' => 'comment',
+ 'ajax' => true,
+ 'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
+ )
+ );
}
public function floated_admin_avatar( $name, $comment_ID ) {
$comment = get_comment( $comment_ID );
- $avatar = get_avatar( $comment, 32, 'mystery' );
+ $avatar = get_avatar( $comment, 32, 'mystery' );
return "$avatar $name";
}
@@ -63,11 +65,10 @@
* @return bool
*/
public function ajax_user_can() {
- return current_user_can('edit_posts');
+ return current_user_can( 'edit_posts' );
}
/**
- *
* @global int $post_id
* @global string $comment_status
* @global string $search
@@ -77,10 +78,11 @@
global $post_id, $comment_status, $search, $comment_type;
$comment_status = isset( $_REQUEST['comment_status'] ) ? $_REQUEST['comment_status'] : 'all';
- if ( !in_array( $comment_status, array( 'all', 'moderated', 'approved', 'spam', 'trash' ) ) )
+ if ( ! in_array( $comment_status, array( 'all', 'mine', 'moderated', 'approved', 'spam', 'trash' ) ) ) {
$comment_status = 'all';
+ }
- $comment_type = !empty( $_REQUEST['comment_type'] ) ? $_REQUEST['comment_type'] : '';
+ $comment_type = ! empty( $_REQUEST['comment_type'] ) ? $_REQUEST['comment_type'] : '';
$search = ( isset( $_REQUEST['s'] ) ) ? $_REQUEST['s'] : '';
@@ -89,7 +91,7 @@
$user_id = ( isset( $_REQUEST['user_id'] ) ) ? $_REQUEST['user_id'] : '';
$orderby = ( isset( $_REQUEST['orderby'] ) ) ? $_REQUEST['orderby'] : '';
- $order = ( isset( $_REQUEST['order'] ) ) ? $_REQUEST['order'] : '';
+ $order = ( isset( $_REQUEST['order'] ) ) ? $_REQUEST['order'] : '';
$comments_per_page = $this->get_per_page( $comment_status );
@@ -97,8 +99,7 @@
if ( isset( $_REQUEST['number'] ) ) {
$number = (int) $_REQUEST['number'];
- }
- else {
+ } else {
$number = $comments_per_page + min( 8, $comments_per_page ); // Grab a few extra
}
@@ -115,29 +116,39 @@
}
$status_map = array(
+ 'mine' => '',
'moderated' => 'hold',
- 'approved' => 'approve',
- 'all' => '',
+ 'approved' => 'approve',
+ 'all' => '',
);
$args = array(
- 'status' => isset( $status_map[$comment_status] ) ? $status_map[$comment_status] : $comment_status,
- 'search' => $search,
- 'user_id' => $user_id,
- 'offset' => $start,
- 'number' => $number,
- 'post_id' => $post_id,
- 'type' => $comment_type,
- 'orderby' => $orderby,
- 'order' => $order,
+ 'status' => isset( $status_map[ $comment_status ] ) ? $status_map[ $comment_status ] : $comment_status,
+ 'search' => $search,
+ 'user_id' => $user_id,
+ 'offset' => $start,
+ 'number' => $number,
+ 'post_id' => $post_id,
+ 'type' => $comment_type,
+ 'orderby' => $orderby,
+ 'order' => $order,
'post_type' => $post_type,
);
+ /**
+ * Filters the arguments for the comment query in the comments list table.
+ *
+ * @since 5.1.0
+ *
+ * @param array $args An array of get_comments() arguments.
+ */
+ $args = apply_filters( 'comments_list_table_query_args', $args );
+
$_comments = get_comments( $args );
if ( is_array( $_comments ) ) {
update_comment_cache( $_comments );
- $this->items = array_slice( $_comments, 0, $comments_per_page );
+ $this->items = array_slice( $_comments, 0, $comments_per_page );
$this->extra_items = array_slice( $_comments, $comments_per_page );
$_comment_post_ids = array_unique( wp_list_pluck( $_comments, 'comment_post_ID' ) );
@@ -145,20 +156,26 @@
$this->pending_count = get_pending_comments_num( $_comment_post_ids );
}
- $total_comments = get_comments( array_merge( $args, array(
- 'count' => true,
- 'offset' => 0,
- 'number' => 0
- ) ) );
+ $total_comments = get_comments(
+ array_merge(
+ $args,
+ array(
+ 'count' => true,
+ 'offset' => 0,
+ 'number' => 0,
+ )
+ )
+ );
- $this->set_pagination_args( array(
- 'total_items' => $total_comments,
- 'per_page' => $comments_per_page,
- ) );
+ $this->set_pagination_args(
+ array(
+ 'total_items' => $total_comments,
+ 'per_page' => $comments_per_page,
+ )
+ );
}
/**
- *
* @param string $comment_status
* @return int
*/
@@ -176,7 +193,6 @@
}
/**
- *
* @global string $comment_status
*/
public function no_items() {
@@ -190,7 +206,6 @@
}
/**
- *
* @global int $post_id
* @global string $comment_status
* @global string $comment_type
@@ -203,12 +218,19 @@
$stati = array(
/* translators: %s: all comments count */
- 'all' => _nx_noop(
+ 'all' => _nx_noop(
'All (%s)',
'All (%s)',
'comments'
), // singular not used
+ /* translators: %s: current user's comments count */
+ 'mine' => _nx_noop(
+ 'Mine (%s)',
+ 'Mine (%s)',
+ 'comments'
+ ),
+
/* translators: %s: pending comments count */
'moderated' => _nx_noop(
'Pending (%s)',
@@ -217,33 +239,35 @@
),
/* translators: %s: approved comments count */
- 'approved' => _nx_noop(
+ 'approved' => _nx_noop(
'Approved (%s)',
'Approved (%s)',
'comments'
),
/* translators: %s: spam comments count */
- 'spam' => _nx_noop(
+ 'spam' => _nx_noop(
'Spam (%s)',
'Spam (%s)',
'comments'
),
/* translators: %s: trashed comments count */
- 'trash' => _nx_noop(
+ 'trash' => _nx_noop(
'Trash (%s)',
'Trash (%s)',
'comments'
- )
+ ),
);
- if ( !EMPTY_TRASH_DAYS )
- unset($stati['trash']);
+ if ( ! EMPTY_TRASH_DAYS ) {
+ unset( $stati['trash'] );
+ }
$link = admin_url( 'edit-comments.php' );
- if ( !empty($comment_type) && 'all' != $comment_type )
+ if ( ! empty( $comment_type ) && 'all' != $comment_type ) {
$link = add_query_arg( 'comment_type', $comment_type, $link );
+ }
foreach ( $stati as $status => $label ) {
$current_link_attributes = '';
@@ -252,11 +276,27 @@
$current_link_attributes = ' class="current" aria-current="page"';
}
- if ( !isset( $num_comments->$status ) )
+ if ( 'mine' === $status ) {
+ $current_user_id = get_current_user_id();
+ $num_comments->mine = get_comments(
+ array(
+ 'post_id' => $post_id ? $post_id : 0,
+ 'user_id' => $current_user_id,
+ 'count' => true,
+ )
+ );
+ $link = add_query_arg( 'user_id', $current_user_id, $link );
+ } else {
+ $link = remove_query_arg( 'user_id', $link );
+ }
+
+ if ( ! isset( $num_comments->$status ) ) {
$num_comments->$status = 10;
+ }
$link = add_query_arg( 'comment_status', $status, $link );
- if ( $post_id )
+ if ( $post_id ) {
$link = add_query_arg( 'p', absint( $post_id ), $link );
+ }
/*
// I toyed with this, but decided against it. Leaving it in here in case anyone thinks it is a good idea. ~ Mark
if ( !empty( $_REQUEST['s'] ) )
@@ -264,7 +304,8 @@
*/
$status_links[ $status ] = "" . sprintf(
translate_nooped_plural( $label, $num_comments->$status ),
- sprintf( '%s',
+ sprintf(
+ '%s',
( 'moderated' === $status ) ? 'pending' : $status,
number_format_i18n( $num_comments->$status )
)
@@ -275,15 +316,15 @@
* Filters the comment status links.
*
* @since 2.5.0
+ * @since 5.1.0 The 'Mine' link was added.
*
- * @param array $status_links An array of fully-formed status links. Default 'All'.
- * Accepts 'All', 'Pending', 'Approved', 'Spam', and 'Trash'.
+ * @param string[] $status_links An associative array of fully-formed comment status links. Includes 'All', 'Mine',
+ * 'Pending', 'Approved', 'Spam', and 'Trash'.
*/
return apply_filters( 'comment_status_links', $status_links );
}
/**
- *
* @global string $comment_status
*
* @return array
@@ -292,12 +333,15 @@
global $comment_status;
$actions = array();
- if ( in_array( $comment_status, array( 'all', 'approved' ) ) )
+ if ( in_array( $comment_status, array( 'all', 'approved' ) ) ) {
$actions['unapprove'] = __( 'Unapprove' );
- if ( in_array( $comment_status, array( 'all', 'moderated' ) ) )
+ }
+ if ( in_array( $comment_status, array( 'all', 'moderated' ) ) ) {
$actions['approve'] = __( 'Approve' );
- if ( in_array( $comment_status, array( 'all', 'moderated', 'approved', 'trash' ) ) )
+ }
+ if ( in_array( $comment_status, array( 'all', 'moderated', 'approved', 'trash' ) ) ) {
$actions['spam'] = _x( 'Mark as Spam', 'comment' );
+ }
if ( 'trash' === $comment_status ) {
$actions['untrash'] = __( 'Restore' );
@@ -305,16 +349,16 @@
$actions['unspam'] = _x( 'Not Spam', 'comment' );
}
- if ( in_array( $comment_status, array( 'trash', 'spam' ) ) || !EMPTY_TRASH_DAYS )
+ if ( in_array( $comment_status, array( 'trash', 'spam' ) ) || ! EMPTY_TRASH_DAYS ) {
$actions['delete'] = __( 'Delete Permanently' );
- else
+ } else {
$actions['trash'] = __( 'Move to Trash' );
+ }
return $actions;
}
/**
- *
* @global string $comment_status
* @global string $comment_type
*
@@ -327,32 +371,36 @@
if ( ! isset( $has_items ) ) {
$has_items = $this->has_items();
}
-?>
+ ?>
-
-
-