如何按类别名称获取类别ID?

时间:2012-07-21 作者:Shimon S

我有几个同名的类别[其中一些是子类别]。我想为某个cattegory名称获取一个ID数组。我试过这个:

 $term = get_term_by(\'name\', $cat_name, \'category\');
但看起来get_term_by() 仅返回与查询匹配的第一个术语。

2 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

我所知的唯一备选方案(使用核心功能)是:

// 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\'"
);

SO网友:enam

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;
?>

MORE Detail!

结束