2012-04-11 5 views
1

Ich habe einen benutzerdefinierten Post-Typ, in dem ich benutzerdefinierte Taxonomien eingerichtet habe.Begriffe aus der benutzerdefinierten Taxonomie ausschließen?

Ich möchte die Kategorien (benutzerdefinierte Taxonomie), in denen ein Beitrag enthalten ist, ausdrucken, aber einen ausschließen. Ich kann jedoch keine Lösung finden, um die Kategorie auszuschließen. Hier ist mein Code eine Liste der Kategorien der benutzerdefinierten Post Typ für die Ausgabe unter abgelegt ist:

<?php the_terms($post->ID, 'critter_cat', 'Critter Type: ', ', ', ' '); ?> 

Wie kann ich eine bestimmte Kategorie ausschließen?

Danke.

+0

Können Sie den Code schreiben Sie für die Registrierung der benutzerdefinierten Taxonomie verwendet? – Robbie

Antwort

2

Sie könnten eine Funktion in der functions.php Datei erstellen, die get_the_terms die Liste der Begriffe als Array zurück ruft, und entfernen Sie dann das Element, das Sie nicht wollen.

Geben Sie diesem einen Versuch:

function get_excluded_terms($id = 0, $taxonomy, $before = '', $sep = '', $after = '', $exclude = array()) { 
    $terms = get_the_terms($id, $taxonomy); 

    if (is_wp_error($terms)) 
     return $terms; 

    if (empty($terms)) 
     return false; 

    foreach ($terms as $term) { 
     if(!in_array($term->term_id,$exclude)) { 
      $link = get_term_link($term, $taxonomy); 

      if (is_wp_error($link)) 
       return $link; 

      $excluded_terms[] = '<a href="' . $link . '" rel="tag">' . $term->name . '</a>'; 
      } 
    } 

    $excluded_terms = apply_filters("term_links-$taxonomy", $excluded_terms); 

    return $before . join($sep, $excluded_terms) . $after; 
} 

und es dann wie folgt verwenden:

<?php echo get_excluded_terms($post->ID, 'critter_cat', 'Critter Type: ', ', ', ' ', array(667)); ?> 
+0

Ich glaube nicht, dass es das ist, was ich bedauere, vielleicht war ich oben nicht klar? Momentan werden meine Beiträge angezeigt, dass sie in der Kategorie (benutzerdefinierte Taxonomie) A, B, C zum Beispiel sind. Aber ich möchte A ausschließen, so dass es nur B, C anzeigt. Ich hoffe, das ergibt Sinn! –

+0

Also, wenn Sie 'the_terms' aufrufen, gibt es' A', 'B',' C' zurück und Sie möchten nur 'B',' C' zurückgeben? – Robbie

+0

Ja Robbie, das ist es, danke. Die Möglichkeit, eine Kategorie (benutzerdefinierte Taxonomie) nach ID oder nach Name auszuschließen. –