Intereting Posts
Получить количество сообщений в названной категории за пределами цикла Добавление страницы меню администратора, показывающей ссылку дважды – как это решить? Добавление класса к показанному изображению Как отключить режим мобильного администратора? Сохраняется ли использование eval для метода обратного вызова jQuery, поступающего из базы данных? Проблемы с доступом к таблицам стилей / скриптам, загружаемым в заголовок WP Я переместил сайт WordPress в основной каталог, и теперь я не могу получить доступ к моему администратору Отобразить список настраиваемых типов сообщений, которые соответствуют таксономии Получить URL-адрес изображения с полным размером изображения, используя идентификатор сообщения? Почему моя переменная comment_form не работает? Регистрация google jquery будет перезаписана плагином Настройка локальной копии с производственного сайта Добавление слайд-шоу Javascript на главную страницу Создать мобильный сайт с тем же контентом Каковы ПРЕИМУЩЕСТВА ОРИГИНАЛЬНОЙ структуры шаблона WordPress?

Как получить комментарии от нескольких типов сообщений?

Как получить комментарии от нескольких типов сообщений? Я хочу отобразить 5 комментариев на разных страницах типов сообщений.

<?php $defaults = array( 'number' => 5, 'post_type' => array('post','authors','movies') ); $comments = get_comments($defaults); ?> 

Solutions Collecting From Web of "Как получить комментарии от нескольких типов сообщений?"

Похоже, WP_Comment_Query() поддерживает только один тип сообщения.

Вы можете настроить его, используя фильтр comments_clauses .

Попробуйте, например:

 $defaults = array( 'number' => 5, 'post_type' => array( 'post','authors','movies' ), ); add_filter( 'comments_clauses', 'wpse_121051', 10, 2 ); $comments = get_comments($defaults) 

где

  /** * Support for multiple post types for comments * * @param array $clauses * @param object $wpqc WP_Comment_Query * @return array $clauses */ function wpse_121051( $clauses, $wpqc ) { global $wpdb; // Remove the comments_clauses filter, we don't need it anymore. remove_filter( current_filter(), __FUNCTION__ ); // Add the multiple post type support. if( isset( $wpqc->query_vars['post_type'][0] ) ) { $join = join( "', '", array_map( 'esc_sql', $wpqc->query_vars['post_type'] ) ); $from = "$wpdb->posts.post_type = '" . $wpqc->query_vars['post_type'][0] . "'"; $to = sprintf( "$wpdb->posts.post_type IN ( '%s' ) ", $join ); $clauses['where'] = str_replace( $from, $to, $clauses['where'] ); } return $clauses; } 

Плагин:

Как любезно предложил @kaiser, я сделал небольшой плагин, чтобы добавить поддержку нескольких типов сообщений в WP_Comment_Query() и get_comments() . Будем надеяться, что эта недостающая функция будет поддерживаться ядром WordPress в ближайшем будущем 😉

На всякий случай, когда кто-либо сталкивается с этим вопросом, WordPress теперь принимает массив для параметра get_comments() для get_comments()