Ausblenden bestimmter Taxonomien aus einer Taxonomie Liste mit ‘get_object_taxonomies’

Hallo,

Ich habe einen ‘Custom Post Type’ mit 8 Taxonomien und ich tue so, als würde ich eine Liste mit nur 6 Taxonomien und den Leerstellen von jedem anzeigen und 2 Taxonomien ausblenden.

Mein aktueller Code zeigt alle Taxonomien mit allen Begriffen an, die das Leergut verbergen, aber ich kann nicht herausfinden, wie ich die beiden Taxonomien verstecken kann, die ich möchte.

Das ist mein Code:

 true, '_builtin' => false ); // $output = 'names'; // or objects // $operator = 'and'; // 'and' or 'or' // $taxonomies = get_taxonomies( $args, $output, $operator ); $object = 'my-cpt-name'; $output = 'names'; $taxonomies = get_object_taxonomies( $object, $output ); if ( $taxonomies ) { foreach ( $taxonomies as $taxonomy ) { echo '

' . $taxonomy . '

'; $args = array( 'hide_empty=0' ); $terms = get_terms( $taxonomy, $args ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { $count = count( $terms ); $i = 0; $term_list = '
    '; foreach ( $terms as $term ) { $i++; $term_list .= '
  • ' . $term->name . '
  • '; if ( $count != $i ) { } else { $term_list .= '
'; } } echo $term_list; } } } ?>

Ich habe die ‘öffentliche’ Taxonomie $ arg als ‘falsch’ eingerichtet, funktioniert aber nicht.

 $args = array( 'labels' => $labels, 'hierarchical' => true, 'public' => false, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); 

Und wie könnte ich den Taxonomie-Namen anstelle des Taxonomie-Slugs auf echo '

' . $taxonomy . '

'; anzeigen echo '

' . $taxonomy . '

'; echo '

' . $taxonomy . '

';

Solutions Collecting From Web of "Ausblenden bestimmter Taxonomien aus einer Taxonomie Liste mit ‘get_object_taxonomies’"

Versuche dies:

 < ?php $object = 'post'; $output = 'objects'; $taxonomies = get_object_taxonomies( $object, $output ); $exclude = array( 'post_tag', 'post_format' ); if ( $taxonomies ) { foreach ( $taxonomies as $taxonomy ) { if( in_array( $taxonomy->name, $exclude ) ) { continue; } $terms = get_terms( array( 'taxonomy' => $taxonomy->name, 'hide_empty' => true, ) ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { echo '

' . $taxonomy->label . '

'; $term_list = ''; echo $term_list; } } } ?>

Für dieses Beispiel habe ich einige Parameter eingerichtet:

  • Post-Typ, nach dem wir suchen: $object = 'post';
  • Taxonomien, die wir ausschließen wollen: $exclude = array( 'post_tag', 'post_format' );

Dann bekommen wir alle zugehörigen Taxonomien und durchlaufen sie. Während wir sie durchlaufen, überprüfen wir jede Taxonomie auf unser Exclude-Array und überspringen sie, falls zutreffend.

Dann greifen wir alle Begriffe aus jeder Taxonomie und bauen eine Liste von Links auf.

@darrinb

Ich habe das Problem getriggers. Ihr Code hat mir sehr geholfen, obwohl ein Fehler aufgetreten ist. 🙂

Der Fehler bekam die “Bedingungen”:

 $terms = get_terms( array( 'taxonomy' => $taxonomy->name, 'hide_empty' => true, ) ); 

Dem Kodex folgen :

Der richtige Weg ist folgender:

 $arg = array( 'hide_empty' => true, ); $terms = get_terms($taxonomy->name, $arg ); 

Vielen Dank!