1

我正在尝试在自定义帖子类型的类别存档页面上获取类别的 ID。到目前为止,我正在使用下面的代码,但它似乎没有工作。此代码在我的taxonomy-{taxonomy}.php文件中。

$cat_name = single_cat_title('', false);
$cat_id = get_cat_ID($cat_name);

// $cat_name = 'Category Name', which works fine but,
// $cat_id = 0, which is obviously not the id of the category

我是否需要做一些特殊的事情来检索自定义帖子类型的类别的 ID?

作为旁注,我需要这个,所以我可以将 ID 传递给get_categories()函数

$args = array(
    'child_of' => $cat_id,
    'taxonomy' => 'taxonomy'
);

$categories = get_categories($args);
4

2 回答 2

4

有几种获取类别 id 的方法

$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;

或者

$category = get_the_category(); 
$cat_id = $category[0]->cat_ID; // or foreach through

或者

if(is_category()) { $cat_ID = get_query_var('cat'); }

要不就

var_dump($wp_query->get_queried_object())

将为模板提供当前对象,例如查询类别存档这是类别对象

或者甚至这些都不起作用,那么这里是自定义查询

global $wpdb;
$category=$wpdb->get_results("SELECT * FROM `wp_terms` WHERE `name` ='$cat_name'");
$category[0]->term_id;
于 2013-07-10T20:32:50.297 回答
1

wp_get_ post _categories 只能获取 POST 类别而不是自定义帖子的类别,请尝试以下操作:

$category = get_the_terms( $post->ID, 'custom-taxonomy-here' ); //////find custom taxonomy category name
foreach ( $category as $cat){
echo $cat->name;
}

http://wordpress.org/support/topic/wp_get_post_categories-equivalent-for-custom-taxonomies

于 2013-07-10T20:30:45.290 回答