想要在WordPress中提取特定页面的类别ID,列出使用该特定类别的所有帖子。试过以下但没有工作。我可以使用single_term_title
获取类别名称。
$category = single_term_title("", false);
$catid = get_cat_ID( $category );
例如, $category
正在显示“娱乐”。但我也需要“娱乐”的ID。我该怎么做呢?
答案 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);