wake-up-neo.com

Wie kann ich eine Kategorie-ID anhand des Kategorienamens erhalten?

Ich habe ein paar Kategorien mit dem gleichen Namen [einige von ihnen sind Unterkategorien]. Und ich möchte eine Reihe von IDs für bestimmte Kategorienamen erhalten. Ich habe es versucht:

 $term = get_term_by('name', $cat_name, 'category');

es scheint jedoch, dass get_term_by() nur den ersten Begriff zurückgibt, der mit der Abfrage übereinstimmt.

3
s976

Die einzige mir bekannte Alternative (mit Kernfunktionen) ist:

// Get terms whose name begins with "my_name"
get_terms( 'category', array( 'name__like' => 'my_name' ) );

// Get terms whose name contains "my_name"
get_terms( 'category', array( 'search' => 'my_name' ) );

Wenn Sie eine genaue Übereinstimmung benötigen, müssen Sie eine benutzerdefinierte Abfrage ausführen.

$wpdb->get_results( "SELECT t.*, tt.* FROM $wpdb->terms AS t
    INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id
    WHERE tt.taxonomy = 'category' AND t.name = 'my_name'"
);
5
TheDeadMedic

get_cat_ID( $cat_name ) kann den Trick machen! Beispiel:

<?php
     $category_id = get_cat_ID('Category Name');
     $q = 'cat=' . $category_id;
     query_posts($q);
     if (have_posts()) : while (have_posts()) : the_post();

     the_content();

     endwhile; endif;
?>

Mehr Details!

3
enam