Intereting Posts
Могу ли я иметь одну фотографию для всех размеров в продукте с Woocommerce? Создайте ссылку переднего конца, чтобы сохранить сообщение (или отменить публикацию) в качестве черновика Добавление определенного содержимого страницы с одной страницы на другую автоматически Как создать боковую панель с «нуля»? Переписать категорию wordpress Wp_list_pages не показывает детей с настраиваемым шаблоном страницы Плагин для автоматического обновления ядра WordPress и его плагинов? Customizer Show / Hide Как отобразить json_encode через $ wpdb Авто удалить пустые значения в массиве Минимальная загрузка wordpress для работы только `get_option` (потому что ajax …) Обновить страницу с помощью Cron после публикации любой публикации Как заменить комментарии по умолчанию на пользовательский HTML? как открыть ссылку в открытом окне из строки меню? Можно ли ограничить конкретного пользователя редактированием определенной персонализированной почты.

Как получить все уникальные категории для сообщений в цикле?

Я ищу, чтобы получить простой список уникальных категорий в настраиваемом цикле (только категории для записей в цикле). Я немного искал какой-то код и вот что у меня есть:

<?php $args = array( 'post_status'=>'publish', 'post_type'=>'post', 'posts_per_page'=>-1 ); $get_posts = new WP_Query(); $get_posts->query($args); if($get_posts->have_posts()) { $cats = array(); while($get_posts->have_posts()) { $get_posts->the_post(); $post_categories = wp_get_post_categories( get_the_ID() ); $i = 0; foreach($post_categories as $c){ $cat = get_category( $c ); $cats[$i] = $cat->slug ; $i++; } } //endwhile $result = array_unique($cats); print_r($result); } //endif wp_reset_postdata(); ?> 

Это поместит каждую категорию статей в массив, и я смогу ее распечатать. Но я хочу объединить каждый массив столбцов категорий, удалить дубликаты (так что есть только один экземпляр каждой уникальной категории), а затем сможет распечатать его.

По сути, я хочу добиться того, чтобы эти категории использовались для сортировки по определенной категории путем обновления цикла с выбранной категорией. Я могу справиться с остальными, мне просто нужно получить этот список уникальных недуплифицированных категорий для всех сообщений в цикле.

У кого-нибудь есть идеи?

Большое спасибо, Иона

Solutions Collecting From Web of "Как получить все уникальные категории для сообщений в цикле?"

EDIT: Перемещено $i = 0 вне цикла. Это даст вам полный список категорий.

 $get_posts = new WP_Query(); $i = 0; $get_posts->query($args); if($get_posts->have_posts()) { $cats = array(); while($get_posts->have_posts()) { $get_posts->the_post(); $post_categories = wp_get_post_categories( get_the_ID() ); foreach($post_categories as $c){ $cat = get_category( $c ); $cats[$i] = $cat->slug ; $i++; } } //endwhile $result = array_unique($cats); print_r($result); } //endif wp_reset_postdata(); 

В основном это выравнивает вложенные массивы в $cats – я думаю, что array_unique возможно, отбрасывал категории, потому что у них был идентичный ключ.

РЕДАКТИРОВАТЬ

Вы сохраняете категории в массиве. Это очень хорошо. Я меняю этот блок на код. См. Измененный код

  $cats = array(); while($get_posts->have_posts()) { $get_posts->the_post(); $post_categories = wp_get_post_categories( get_the_ID() ); foreach($post_categories as $c){ $cat = get_category( $c ); $cats[] = array( 'slug' => $cat->slug ); } } //endwhile $result = array_unique($cats); print_r($result); 

Там есть функция array_unique . С помощью этой функции вы можете получить уникальное значение. См. Учебник для лучшего знания.