web-dev-qa-db-ja.com

アクティブなページの現在のカテゴリIDを取得します

特定のカテゴリを使用しているすべての投稿をリストしているWordPressの特定のページのカテゴリIDを取得しようとしています。以下を試しましたが、動作しませんでした。 single_term_titleを使用してカテゴリ名を取得できます。

$category = single_term_title("", false);
$catid = get_cat_ID( $category );

$categoryは、たとえば「エンターテイメント」を表示しています。しかし、「Entertainment」のIDも必要です。これについてどうすればいいですか?

70
RonnieT

get_the_category() を使用して試すことができます:

$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
58
ash108

カテゴリページの場合、次の方法で現在のカテゴリのIDを取得できます。

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

任意のページの特定のカテゴリのカテゴリIDを取得する場合は、次を使用してみてください。

$category_id = get_cat_ID('Category Name');
177

最も古くはあるが最も速い方法は次のとおりです。

$cat_id = get_query_var('cat');
30
Fred K

Get_queried_object関数を使用して、category.phpテンプレートページの現在のカテゴリを取得します。

$current_category = get_queried_object();

ジョーダン・エルドレッジは正しいです。get_the_categoryはここでは適していません。

16
Shaffe

上記のいくつかは機能するかもしれないと思いますが、get_the_category関数を使用するのは難しいようで、予期しない結果をもたらす可能性があります。

カテゴリページで猫IDにアクセスする最も直接的で簡単な方法は次のとおりです。

$wp_query->query_vars['cat']

乾杯

4
Jorge Orpinel

代替-

 $catID = the_category_ID($echo=false);

編集:上記の関数は非推奨ですget_the_category()を使用してください

1
Bheru Lal Lohar

カテゴリテンプレートページのパンくずリストにこれを使用しました。

$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);がカテゴリのタイトルを正しく返していると言ったように、コードで問題が発生した理由はわかりません。しかし、上記のコードは私にとって完璧に機能します。

0
Bill

投稿の猫IDを見つけるための解決策を上記で試しましたが、何も機能せず、代わりに次を使用しました:

$obj = get_queried_object();
$c_id = wp_get_post_categories($obj->ID);
0
Robert Sinclair
$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;
  }
}
0
Abhijit Patel