Listen Sie Begriffe der benutzerdefinierten Taxonomie auf, wenn sie mit anderen Taxonomien übereinstimmen

Der Titel ist also verwirrend, aber ich kann mir keinen besseren Weg vorstellen, ihn zu formulieren. Grundsätzlich habe ich zwei Taxonomien von “Staat” und “Stadt” (die aus anderen Gründen getrennt bleiben müssen). Nehmen wir beispielsweise an, ein Begriff in der Taxonomie von “Staat” ist “Connecticut”. Ich möchte dann eine Liste von Begriffen aus der Taxonomie von “Stadt” anzeigen, die nur aus Beiträgen mit dem Begriff “Staat” als “Connecticut” bestehen. Grundsätzlich möchte ich den Status dynamisch aufrufen und die Städte in der Sidebar auf der Archivseite anzeigen … ich weiß, das klingt wirklich verwirrend.

Dieser Code funktioniert aber offensichtlich verursacht Duplikate, ich möchte jeden nur einmal aufgelistet haben.

ID, 'property_location' ); if ( $pterms && ! is_wp_error( $pterms ) ) : $prop_links = array(); foreach ( $pterms as $el_term ) { $prop_links[] = $el_term->name; } $st_location = join( ", ", $prop_links ); ?>     'property', 'post_status' => 'publish', 'posts_per_page' => -1, 'property_location' => ''.$st_location.'' ); $the_query = new WP_Query( $args ); ?> have_posts()) : $the_query->the_post(); ?> 

ID, 'city', '', '', '' ); ?>

Irgendwelche Vorschläge?

Solutions Collecting From Web of "Listen Sie Begriffe der benutzerdefinierten Taxonomie auf, wenn sie mit anderen Taxonomien übereinstimmen"

Ihre Herangehensweise ist nicht schlecht, aber anstatt all diese array_unique zu array_unique , sollten Sie sie in einem Array speichern und dann array_unique , um doppelte Einträge vor der Anzeige zu entfernen.

 < ?php $array_out = array(); while ($the_query->have_posts()) : $the_query->the_post(); ?> $terms = get_the_terms( $post->ID, 'city'); foreach($terms as $term){ $term_link = get_term_link($term, 'city'); $array_out[] = ''.$term->name.''; } endwhile; $array_clean = array_unique($array_out); echo '

' . implode('

', $array_clean) . '

';

Wir müssen den Link selbst get_term_link() indem wir get_term_link() so dass das Array jeden Begriff getrennt hält, nicht nach Gruppen, da er mit jedem Post verbunden ist.