Просмотр комментариев в админке WordPress
Как показать комментарии только от гостей?
Почему-то в админке для комментариев есть только один фильтр – показывать либо комментарии либо уведомления. А если я хочу посмотреть комментарии только от одного пользователя? или скажем наоборот исключить?
Вот недавно мне понадобилось посмотреть каменты только от гостей. Слава богу эта проблема решается очень просто.
Поскольку гости не имеют user_id, то соответственно, введя в строку браузера такой адрес вы автоматом увидите только каменты от гостей:
www.yoursite.com/wp-admin/edit-comments.php?user_id=0
Как показать только свои собственные комментарии?
В свое время я сталкивался с плагином my-comment. Он уже давненько не обновлялся, поэтому не знаю как у него совместимость с нынешним движком. Самое интересно, что этот элементарный твик, фактически, эквивалентен этому плагину
Просто вместо нуля введите свой user_id, например:
www.yoursite.com/wp-admin/edit-comments.php?user_id=1
и вуаля, WordPress покажет только Ваши каменты.
Как показать комментарии гостей в «Консоли»?
Для этого придется маленько повозиться с кодом. Допишите в конец вашего functions.php, который лежит в директории ваше темы, следующий код.
<?php function add_AAArecent_comments_dashboard_widget() { $AAArecent_comments_title = __( 'Recent Answers', 'AAA' ); wp_add_dashboard_widget( 'dashboard_AAArecent_comments', $AAArecent_comments_title, 'wp_dashboard_AAArecent_comments', 'wp_dashboard_recent_comments_control' ); } add_action('wp_dashboard_setup', 'add_AAArecent_comments_dashboard_widget'); function wp_dashboard_AAArecent_comments() { global $wpdb; if ( current_user_can('edit_posts') ) $allowed_states = array('0', '1'); else $allowed_states = array('1'); // Select all comment types and filter out spam later for better query performance. $comments = array(); $start = 0; $widgets = get_option( 'dashboard_widget_options' ); $total_items = isset( $widgets['dashboard_recent_comments'] ) && isset( $widgets['dashboard_recent_comments']['items'] ) ? absint( $widgets['dashboard_recent_comments']['items'] ) : 5; while ( count( $comments ) < $total_items && $possible = $wpdb->get_results( "SELECT * FROM $wpdb->comments c LEFT JOIN $wpdb->posts p ON c.comment_post_ID = p.ID WHERE p.post_status != 'trash' AND user_id=0 ORDER BY c.comment_date_gmt DESC LIMIT $start, 50" ) ) { foreach ( $possible as $comment ) { if ( count( $comments ) >= $total_items ) break; if ( in_array( $comment->comment_approved, $allowed_states ) && current_user_can( 'read_post', $comment->comment_post_ID ) ) $comments[] = $comment; } $start = $start + 50; } if ( $comments ) : ?> <div id="the-comment-list" class="list:comment"> <?php foreach ( $comments as $comment ) _wp_dashboard_recent_comments_row( $comment ); ?> </div> <?php if ( current_user_can('edit_posts') ) { ?> <?php _get_list_table('WP_Comments_List_Table')->views(); ?> <?php } wp_comment_reply( -1, false, 'dashboard', false ); wp_comment_trashnotice(); else : ?> <p><?php _e( 'No comments yet.' ); ?></p> <?php endif; // $comments; }
От стандартного виджета (свежие комментарии) этот отличается только маленькой добавкой AND user_id=0. Все, easy.
Конечно, надо добавить, что AAA в этом коде, это префикс вашей темы. Например, для стандартной темы Twenty Eleven вместо AAA следует вставить twentyeleven.
После этого в Консоли появится новый виджет – Recent Answers. Если Вы хотите русифицировать эту надпись, то следует отредактировать Ваш ru_RU.po файл. Но об этом в следующий раз ![]()



