Intereting Posts
Получение номера комментария по отношению ко всем комментариям Есть ли способ перечислить все сценарии JavaScript, которые фактически загружены WordPress? Мы заботимся? Продукты импорта XML WooCommerce wp_delete_post удаляет все сообщения, а не только истекшие Что такое template-name.php Веб-сайт медленный: советы по оптимизации я хочу показать подкатегории на категории-Страницы и под-подкатегории на subcategoriepages Как удалить параметры с помощью register_uninstall_hook? Почему get_posts () не возвращает только выбранные должности категории из пользовательского типа сообщений? Вызывается ли файл functions.php во время вызова AJAX? Отладка AJAX Советы по именованию файлов для плагина Экспорт специального меню Как изменить положение пункта меню Custom Post Type в меню моего плагина? Есть ли какой-либо плагин для показа числа кликов по ссылке? Loop в моем файле archive.php не работает для пользовательских таксономий

Получать комментарии только для определенных пользователей в файле шаблона

Чтобы возвращать комментарии для конкретного пользователя, я использую следующий код:

$arg = array('user_id' => $userID); $coms= get_comments( $arg ); 

Как я могу изменить аргументы этой функции, чтобы получать комментарии для группы пользователей (получать только комментарии для определенных 2 или 3 пользователей)?

Аргумент `user_id 'должен быть целым числом, я не могу найти способ передать массив.

Или я должен использовать PHP или SQL для достижения моей цели?

Ваше время и внимание к этой проблеме приветствуются.

Solutions Collecting From Web of "Получать комментарии только для определенных пользователей в файле шаблона"

Вы можете попробовать изменить запрос с помощью фильтра comments_clauses :

 $args = array( 'user_id' => 0 ); add_filter( 'comments_clauses', 'custom_comments_clauses'); $comments = get_comments( $args ); remove_filter( 'comments_clauses', 'custom_comments_clauses'); function custom_comments_clauses( $clauses ){ $clauses['where'] = str_replace( 'user_id = 0', 'user_id IN (1, 2, 3)', $clauses['where'] ); return $clauses; } 

Обновить:

Вы также можете добавить настраиваемый параметр my_user_ids к следующему запросу:

 $args = array( 'user_id' => 0, 'my_user_ids' => array(1,2,3) ); add_filter( 'comments_clauses', 'custom_comments_clauses', 99, 2 ); $comments = get_comments( $args ); remove_filter( 'comments_clauses', 'custom_comments_clauses', 99, 2 ); function custom_comments_clauses( $clauses, $query ){ if( isset( $query->query_vars['user_id'] ) && isset( $query->query_vars['my_user_ids'] ) ){ $user_id = $query->query_vars['user_id']; $user_ids = $query->query_vars['my_user_ids']; if( count( $user_ids ) > 0 ){ $from = sprintf( 'user_id = %d', $user_id ); $to = sprintf( 'user_id IN (%s)', join( ',', $user_ids ) ); $clauses['where'] = str_replace( $from, $to, $clauses['where'] ); } } return $clauses; } 

где $my_user_ids – это массив идентификаторов пользователя.