Intereting Posts
Как наилучшим образом настроить для развития двухсторонней прибрежной команды? Как отображать сообщение в пользовательском файле не в архиве? Как вызвать обновление в медиа-модальном Сообщения о таксономии wordpress добавить диалоговое окно с улучшенным изображением Выдержки не отображаются на главной странице Экран входа в WordPress AJAX Разделить таблицу пользователей из WP с Drupal Тонны строк Twitter в моей базе данных Неопределенная ошибка индекса в элементе массива опций? Отключить перетаскивание мета-ящиков? Пользовательский статус сообщения не отображается в пользовательском типе публикации ВСЕ Исключить контент до «больше» на отдельных сообщениях Экспортировать персонализированные сообщения типа Post со всеми настраиваемыми полями и пользовательской Texonomy, связанной с ним Почему на этой странице архива, вызывающей функцию query_posts (), отображаются только последние 10 сообщений?

Как добавить фильтр в «Комментарии» на панели администратора?

Я нашел так много информации, и большинство уроков говорят только о добавлении фильтра только в пост / пользовательский пост.

Я хочу сделать что-то подобное этому учебнику в области «Комментарии» в панели администратора.

Добавить меню фильтров в список сообщений администратора (настраиваемого типа) для фильтрации сообщений по пользовательским значениям полей

Однако я не уверен, обрабатывает ли дескриптор parse_query запрос в этой области? У кого-нибудь может быть предложение по учебнику, плагин, который может помочь?

Solutions Collecting From Web of "Как добавить фильтр в «Комментарии» на панели администратора?"

Рабочий пример [Обновление]

Из этого ответа , @TheDeadMedic, вот адаптация, чтобы показывать только комментарии из определенного post_id . Ссылка на это действие вставляется в строку состояния.

Hello World – это сообщение с ID 53.

новые комментарии статус ссылка

При нажатии на нее отображаются только комментарии этого сообщения в URL-адресе
example.com/wp-admin/edit-comments.php?comment_status=all&hello_world=1 :

показывать комментарии только одного сообщения

 add_action( 'current_screen', 'wpse_72210_comments_exclude_lazy_hook', 10, 2 ); /** * Delay hooking our clauses filter to ensure it's only applied when needed. */ function wpse_72210_comments_exclude_lazy_hook( $screen ) { if ( $screen->id != 'edit-comments' ) return; // Check if our Query Var is defined if( isset( $_GET['hello_world'] ) ) add_action( 'pre_get_comments', 'wpse_63422_list_comments_from_specific_post', 10, 1 ); add_filter( 'comment_status_links', 'wpse_63422_new_comments_page_link' ); } /** * Only display comments of specific post_id */ function wpse_63422_list_comments_from_specific_post( $clauses ) { $clauses->query_vars['post_id'] = 53; } /** * Add link to specific post comments with counter */ function wpse_63422_new_comments_page_link( $status_links ) { $count = get_comments( 'post_id=53&count=1' ); if( isset( $_GET['hello_world'] ) ) { $status_links['all'] = '<a href="edit-comments.php?comment_status=all">All</a>'; $status_links['hello'] = '<a href="edit-comments.php?comment_status=all&hello_world=1" class="current">Hello World ('.$count.')</a>'; } else { $status_links['hello'] = '<a href="edit-comments.php?comment_status=all&hello_world=1">Hello World ('.$count.')</a>'; } return $status_links; } 

Полезные крючки

Найдите крючки ниже, они доступны в файле /wp-admin/includes/class-wp-comments-list-table.php .

Это даст вам представление о возможностях экрана комментариев.

действия

  • manage_comments_custom_column
  • manage_comments_nav

фильтры

  • comments_per_page
  • comment_status_links
  • admin_comment_types_dropdown
  • comment_edit_pre
  • comment_row_actions