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 に答える