我相信下面的方法应该可以做到,只需添加functions.php
文件
/**
* Prevent non-administrator users from viewing others comments.
*/
add_filter( \'comments_list_table_query_args\', function( $args ) {
global $pagenow;
if ( $pagenow == \'edit-comments.php\' ) {
$user = wp_get_current_user();
$value = !empty( $args[ \'author__in\' ] ) ? $args[ \'author__in\' ] : [];
if ( is_array( $value ) && !in_array( $user->ID, $value ) && !in_array( \'administrator\', (array)$user->roles ) ) {
$value[] = $user->ID;
}
$args[ \'author__in\' ] = $value;
}
return $args;
}, PHP_INT_MAX );
我可以通过查看
wp-admin/edit-comments.php
. 在文件中,我找到了对类的调用
WP_Comments_List_Table
(位于
wp-admin/includes/class-wp-comments-list-table.php
) 扩展了
WP_List_Table
班
根据经验,我知道WP_List_Table
需要方法prepare_items()
它通常处理查询。在这里我找到了过滤器comments_list_table_query_args
它允许我们在进行注释查询之前修改查询参数。