WordPress-Kategorien: function, die benutzerdefinierte SQL verwendet, um ein Array bestimmter Kategorien-IDs zurückzugeben

Ich entwickle ein benutzerdefiniertes Thema, das Kategorien für die Positionierung verwendet, die alle mit einem Unterstrich beginnen (zB _position1). Ich habe eine SQL-Abfrage wie folgt, um eine Liste dieser Kategorien (die mit einem Unterstrich beginnen) zu erhalten.

SELECT name,term_id FROM `wp_terms` WHERE name LIKE '\_%'; 

Wie würde ich dies in eine function umwandeln, die eine Liste der Kategorie-IDs zurückgibt?

Die Idee ist, dass diese Liste von IDs an wp_list_categories() , um ausgeschlossen zu werden, zB (wo get_positional_ids das obige SQL verwenden würde, um eine Liste von IDs zurückzugeben)

  $excludeids); wp_list_categories($args); ?> 

Irgendwelche Ideen, wie man das macht? Vielen Dank.

Solutions Collecting From Web of "WordPress-Kategorien: function, die benutzerdefinierte SQL verwendet, um ein Array bestimmter Kategorien-IDs zurückzugeben"

Wenn Sie die get_terms function get_terms verwenden, erhalten Sie einen schnellen Liner:

 function get_positional_ids(){ return get_terms( 'category', array('fields' => 'ids', 'name__like' => '_')); } 

kein benutzerdefiniertes SQL, sicher und einfach.

Eine bessere Idee wäre, eine benutzerdefinierte Taxonomie als “Positionen” zu erstellen und alle Ihre Positionswerte unter diese Taxonomie zu setzen. Es wird einfacher zu handhaben als benutzerdefinierte SQL zu schreiben. Aber wenn Sie immer noch mit dem SQL-Weg gehen wollen, versuchen Sie dies …

 < ?php function get_positional_ids() { global $wpdb; $pos_query = SELECT term_id FROM `wp_terms` WHERE name LIKE '\_%'; //This will return an array of objects with the values returned by the query $pos_id_objs = $wpdb->get_results($pos_query); $pos_ids = array(); //we loop through the array of objects and form an array of ids we want to return foreach($pos_id_objs as $pos_id_obj) { $pos_ids[] = $pos_id_obj->term_id; } return $pos_ids; } 

Setze das in functions.php Habe es nicht getestet, sollte aber funktionieren. $wpdb Sie sich das Dokument für die class $wpdb an .