Ausgabe-Slugs, die als classnnamen für jede Taxonomie verwendet werden, der ein Post zugeordnet ist

Ich versuche, Slugs als classnnamen für alle Taxonomien auszugeben, mit denen ein Post verknüpft ist, sodass ich diese Posts mit MixItUp3 mit der Multifier-Erweiterung auf einer benutzerdefinierten Verzeichnisseite filtern kann.

Ich habe ein benutzerdefiniertes Loop-Setup, das nur Verzeichnis-Posts durchsucht, die als “aktuell” gekennzeichnet wurden (dadurch können alte Einträge im System bleiben, aber nicht angezeigt werden).

 'directory', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'directory_cat', 'operator' => 'EXISTS' ), array( 'taxonomy' => 'directory_tag', 'field' => 'slug', 'terms' => 'current' ) ) ); $query = new WP_Query( $args ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?> <div class="column mix"> <a href="https://wordpress.stackexchange.com/questions/256218/output-slugs-to-use-as-class-names-for-every-taxonomy-a-post-is-attached-to/"> ...  

Ich versuche, die Slugs wie oben gezeigt in die div-class auszugeben ($ class_names), aber ich kann den richtigen Weg nicht finden. Der folgende Code wurde aus der MixItUp-Dokumentation entnommen und ich habe versucht, ihn nach meinen Bedürfnissen zu bearbeiten, aber als PHP-Anfänger stolpere ich einfach weiter.

 $taxonomies = get_terms(); $slugs = wp_list_pluck($taxonomies, 'slug'); $class_names = join(' ', $slugs); 

Es wird korrekt ausgegeben und formatiert, aber es listet jede Taxonomie im System auf und nicht die, die an jeden Post in der Schleife angehängt sind.

Solutions Collecting From Web of "Ausgabe-Slugs, die als classnnamen für jede Taxonomie verwendet werden, der ein Post zugeordnet ist"

Ich empfehle get_the_terms anstelle von get_terms. Es zieht speziell die Begriffe heraus, die an einen bestimmten Beitrag angehängt sind. Wenn Sie es innerhalb der Schleife verwenden, erhalten Sie nur die Bedingungen, die an diesen Beitrag angehängt sind.

Es würde ungefähr so ​​aussehen:

 $query = new WP_Query( $args ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); $slugs = array(); $directory_terms = get_the_terms( $post->ID, 'directory_tag'); foreach ( $directory_terms as $term ) { $slugs[] = $term->slug; } $class_names = join( ' ', $slugs ); ?> 

Sie können Ihre Suche natürlich weiter verfeinern, wenn Sie nur bestimmte Begriffe aus dieser Taxonomie benötigen. get_the_terms gibt eine Liste von WP_Term-Objekten zurück, die Sie beliebig eingrenzen können.

EDIT: Aktualisierter Code, um zu zeigen, wie in einem div zu implementieren.

EDIT: Fehlendes Semikolon hinzugefügt.