同じ名前のカテゴリがいくつかあります(それらの一部はサブカテゴリです)。そして私は特定のカテゴリ名のIDの配列を取得したいのです。私はこれを試しました:
$term = get_term_by('name', $cat_name, 'category');
しかし、get_term_by()
はクエリにマッチする最初の単語だけを返すようです。
私が知っている(コア機能を使用して)唯一の代替手段は、
// 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' ) );
完全一致が必要な場合は、カスタムクエリを実行する必要があります。
$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'"
);
get_cat_ID( $cat_name )
がトリックをやることができます!例:
<?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;
?>