特定のカテゴリを使用しているすべての投稿をリストしているWordPressの特定のページのカテゴリIDを取得しようとしています。以下を試しましたが、動作しませんでした。 single_term_title
を使用してカテゴリ名を取得できます。
$category = single_term_title("", false);
$catid = get_cat_ID( $category );
$category
は、たとえば「エンターテイメント」を表示しています。しかし、「Entertainment」のIDも必要です。これについてどうすればいいですか?
get_the_category()
を使用して試すことができます:
$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
カテゴリページの場合、次の方法で現在のカテゴリのIDを取得できます。
$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;
任意のページの特定のカテゴリのカテゴリIDを取得する場合は、次を使用してみてください。
$category_id = get_cat_ID('Category Name');
最も古くはあるが最も速い方法は次のとおりです。
$cat_id = get_query_var('cat');
Get_queried_object関数を使用して、category.phpテンプレートページの現在のカテゴリを取得します。
$current_category = get_queried_object();
ジョーダン・エルドレッジは正しいです。get_the_categoryはここでは適していません。
上記のいくつかは機能するかもしれないと思いますが、get_the_category関数を使用するのは難しいようで、予期しない結果をもたらす可能性があります。
カテゴリページで猫IDにアクセスする最も直接的で簡単な方法は次のとおりです。
$wp_query->query_vars['cat']
乾杯
代替-
$catID = the_category_ID($echo=false);
編集:上記の関数は非推奨ですget_the_category()
を使用してください
カテゴリテンプレートページのパンくずリストにこれを使用しました。
$cat_obj = $wp_query->get_queried_object();
$thiscat_id = $cat_obj->term_id;
$thiscat = get_category($thiscat_id);
$parentcat = get_category($thiscat->parent);
私はあなたが尋ねたものを正確に探している間にこの質問を見つけました。残念ながら、あなたは間違った答えを受け入れました。私たちが達成しようとしていることを達成しようとしている他の人々のために、私は正しい答えを投稿すると思いました。
$cur_cat = get_cat_ID( single_cat_title("",false) );
single_term_title("", false);
がカテゴリのタイトルを正しく返していると言ったように、コードで問題が発生した理由はわかりません。しかし、上記のコードは私にとって完璧に機能します。
投稿の猫IDを見つけるための解決策を上記で試しましたが、何も機能せず、代わりに次を使用しました:
$obj = get_queried_object();
$c_id = wp_get_post_categories($obj->ID);
$cats = wp_get_post_terms( $post->ID, 'product_cat' );
foreach($cats as $cat){
/*check for category having parent or not except category id=1 which is wordpress default category (Uncategorized)*/
if($cat->parent != '0' && $cat->term_id != 1){
echo '<h2 class="link"><a href="'.get_category_link($cat->term_id ).'">'.$cat->name.'</a></h2>';
break;
}
}