Intereting Posts
Использование функциональных возможностей меню WP по умолчанию для ссылки на пользовательский листинг после печати? WP_User_Query и сообщения пользователей Показывать только, когда у таксономии есть сообщения? Удалить /index.php из Permalink 500 после wp_insert_post Сделать страницы незаменимыми для редакторов? API пользовательского типа сообщений не отображает таксономию или массив категорий Могут ли пули из сообщений и пользовательских типов сообщений конфликтуют? Должны ли вы вручную пинговать новые сообщения WordPress? Простая форма, которая сохраняется в базе данных перерегистрировать пользовательский тип сообщения с настраиваемыми возможностями Перенаправление трафика из старого блога «.WordPress.com» в частном блоге WordPress? Форма контакта 7 показывает условные выпадающие данные из массива json Добавить Metabox в страницу настроек / параметров Как изменить целевую ссылку для панели администратора?

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

Как получить комментарии от нескольких типов сообщений? Я хочу отобразить 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()