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

2012年01月12日に質問されました。  ·  閲覧回数 276.7k回  ·  ソース

RonnieT picture
2012年01月12日

その特定のカテゴリを使用してすべての投稿を一覧表示しているWordPressの特定のページのカテゴリIDを取得しようとしています。 以下を試しましたが、機能しませんでした。 single_term_titleを使用してカテゴリ名を取得できます。

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

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

回答

Ram Mehar Deswal picture
2012年01月12日
193

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

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

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

$category_id = get_cat_ID('Category Name');
ash108 picture
2012年01月12日
70

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

$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
Fred K picture
2013年06月18日
36

使用できる最も古いが最速の方法は次のとおりです。

$cat_id = get_query_var('cat');
Shaffe picture
2014年01月10日
21

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

$current_category = get_queried_object();

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

Jorge Orpinel picture
2013年09月23日
4

上記のいくつかは機能すると思いますが、get_the_category関数を使用すると注意が必要で、予期しない結果が生じる可能性があります。

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

$wp_query->query_vars['cat']

乾杯

Bill picture
2013年05月21日
1

あなたが尋ねたものを正確に探しているときに、私はこの質問を見つけました。 残念ながら、あなたは間違った答えを受け入れました。 私たちが達成しようとしていたことを達成しようとしている他の人々のために、私は正解を投稿したいと思いました。

$cur_cat = get_cat_ID( single_cat_title("",false) );

single_term_title("", false);がカテゴリタイトルを正しく返しているとおっしゃっていましたが、コードで問題が発生した理由がわかりません。 しかし、上記のコードは私にとって完璧に機能します。

Bheru Lal Lohar picture
2015年02月04日
1

代替案-

 $catID = the_category_ID($echo=false);

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

guido _nhcol.com.br_ picture
2016年08月10日
1

カテゴリテンプレートページのブレッドクラムにこれを使用しました。

$cat_obj = $wp_query->get_queried_object();
$thiscat_id = $cat_obj->term_id;
$thiscat = get_category($thiscat_id);
$parentcat = get_category($thiscat->parent);
honk31 picture
2020年03月13日
1

カテゴリIDが必要な場合は、 get_query_varを介して取得します。これにより、パブリックにクエリ可能なすべての変数を取得できます。

$category_id = get_query_var('cat');

カテゴリ名を取得する例を次に示します

$category_name = get_query_var('category_name');

そしてもちろん、すべての強力なget_queried_object

$queried_object = get_queried_object();

これは、完全な分類用語オブジェクトを返します(分類アーカイブページで使用される場合)。

Abhijit Patel picture
2017年02月10日
0
$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;
  }
}