获取活动页面的当前类别ID

时间:2012-01-12 03:08:57

标签: php wordpress wordpress-theming categories

想要在WordPress中提取特定页面的类别ID,列出使用该特定类别的所有帖子。试过以下但没有工作。我可以使用single_term_title获取类别名称。

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

$category正在显示“娱乐”。但我也需要“娱乐”的ID。我该怎么做呢?

11 个答案:

答案 0 :(得分:177)

如果是类别页面,您可以通过以下方式获取当前类别的ID:

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

如果您想在任何页面上获取任何特定类别的类别ID,请尝试使用:

$category_id = get_cat_ID('Category Name');

答案 1 :(得分:58)

您可以尝试使用get_the_category()

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

答案 2 :(得分:30)

您可以使用的最古老但最快的方法是:

$cat_id = get_query_var('cat');

答案 3 :(得分:16)

我使用get_queried_object函数获取category.php模板页面上的当前类别。

$current_category = get_queried_object();

Jordan Eldredge是对的,get_the_category不适合这里。

答案 4 :(得分:4)

我认为上面的一些可能有用,但使用get_the_category函数似乎很棘手,可能会产生意想不到的结果。

我认为在类别页面中访问cat ID的最直接,最简单的方法是:

$wp_query->query_vars['cat']

干杯

答案 5 :(得分:1)

替代方案 -

 $catID = the_category_ID($echo=false);

编辑:以上函数已弃用,请使用get_the_category()

答案 6 :(得分:1)

我在类别模板页面中将它用于面包棒:

$cat_obj = $wp_query->get_queried_object();
$thiscat_id = $cat_obj->term_id;
$thiscat = get_category($thiscat_id);
$parentcat = get_category($thiscat->parent);

答案 7 :(得分: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();

正在返回完整的分类法术语对象(在分类法归档页面上使用时。)

答案 8 :(得分:0)

我在找到你问的确切问题时发现了这个问题。很遗憾,您接受了错误的答案。为了其他想要实现我们想要实现的目标的人,我想我会发布正确答案。

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

正如你所说single_term_title("", false);正确地返回了类别标题,我不确定为什么你的代码会遇到麻烦;但上面的代码对我来说完美无瑕。

答案 9 :(得分: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;
  }
}

答案 10 :(得分:0)

上面尝试了寻找帖子的目录ID的解决方案,但没有任何效果,请改用以下内容:

$obj = get_queried_object();
$c_id = wp_get_post_categories($obj->ID);