Wie bekommt man alle eindeutigen Kategorien für Posts in loop?

Ich suche nach einer eindeutigen Liste der eindeutigen Kategorien in einer benutzerdefinierten Schleife (nur Kategorien für die Posts in der Schleife). Ich habe ein bisschen nach etwas Code geforscht und hier ist, was ich habe:

'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(); ?> 

Dies wird jede Posts Kategorien in ein Array setzen und ich kann das ausdrucken. Aber ich möchte jedes Posts-Array von Kategorien zusammenführen, Duplikate entfernen (so dass es nur eine Instanz jeder eindeutigen Kategorie gibt) und dann in der Lage sein, es auszudrucken.

Im Wesentlichen möchte ich eine Dropdown-Liste für diese Kategorien erstellen, die verwendet werden kann, um nach einer bestimmten Kategorie sortieren zu können, indem die Schleife mit dieser ausgewählten Kategorie aktualisiert wird. Ich kann den Rest erledigen, ich muss nur diese Liste der eindeutigen, nicht eindeutigen Kategorien für alle Beiträge in einer Schleife erhalten.

Hat jemand Ideen?

Vielen Dank, Jonas

Solutions Collecting From Web of "Wie bekommt man alle eindeutigen Kategorien für Posts in loop?"

EDIT: $i = 0 außerhalb der Schleife verschoben. Das sollte dir die vollständige Liste der Kategorien bringen.

 $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(); 

Im Grunde flacht es die verschachtelten Arrays in $cats – ich denke, array_unique könnte Kategorien vercasting, weil sie einen identischen Schlüssel hatten.

BEARBEITEN

Sie speichern die Kategorien im Array. Das ist sehr gut. Ich ändere diesen Blockcode. Siehe den geänderten Code

  $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); 

Es gibt array_unique function. Mit dieser function können Sie einen einzigartigen Wert erhalten. Sehen Sie das Tutorial hier für besseres Wissen.