希望在WordPress中提取特定页面的类别ID,该页面列出了使用该特定类别的所有帖子。尝试了以下操作,但未成功。我可以使用single_term_title
获得类别名称。
$category = single_term_title("", false);
$catid = get_cat_ID( $category );
例如,$category
显示"Entertainment"(娱乐)。但我也需要"娱乐"的ID。我该怎么做?
如果是类别页面,您可以通过以下方式获取当前类别的id:
$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;
如果你想在任何页面上获得任何特定类别的类别id,请尝试使用:
$category_id = get_cat_ID('Category Name');
您可以尝试使用get_the_category()
:
$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
最古老但最快的使用方法是:
$cat_id = get_query_var('cat');
我使用get_queried_object函数来获取category.php模板页面上的当前类别。
$current_category = get_queried_object();
Jordan Eldredge是对的,get_the_category在这里不合适。
我认为上面的一些方法可能有效,但使用get_the_category函数似乎很棘手,可能会产生意想不到的结果。
我认为在类别页面中访问猫ID最直接、最简单的方法是:
$wp_query->query_vars['cat']
干杯
如果您需要类别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();
即返回完整的分类术语对象(在分类归档页面上使用时)
我在寻找你所问的问题时发现了这个问题。很遗憾,您接受了一个错误的答案。为了其他正在努力实现我们想要实现的目标的人,我想我会发布正确的答案。
$cur_cat = get_cat_ID( single_cat_title("",false) );
正如您所说的single_term_title("", false);
正确地返回了类别标题,我不确定为什么您的代码会出现问题;但是上面的代码对我来说是完美的。
我在类别模板页面中为面包屑使用了这个:
$cat_obj = $wp_query->get_queried_object();
$thiscat_id = $cat_obj->term_id;
$thiscat = get_category($thiscat_id);
$parentcat = get_category($thiscat->parent);
替代方案-
$catID = the_category_ID($echo=false);
EDIT:以上功能已弃用,请使用get_the_category()
我测试了所有这些答案,这是唯一一个适用于所有归档页面类型(包括posts页面)的答案。
$category_id = get_the_category( get_the_ID());
$cat_id = get_category($category_id[0]->term_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;
}
}
上面尝试了查找帖子的cat ID的解决方案,但没有成功,而是使用了以下内容:
$obj = get_queried_object();
$c_id = wp_get_post_categories($obj->ID);
如果你想在前端打印,这里有一种有效的方法可以获得类别元数据和HTML:
<?php
function custom_get_categories() {
$categories = get_the_category();
$uncategorised_id = get_cat_ID('Uncategorized');
$custom_category_link = '';
foreach ($categories as $category) {
if($category->category_parent == $uncategorised_id || $category->cat_ID == $uncategorised_id) {
continue;
}
$custom_category_link = get_category_link($category->cat_ID); ?>
<a href ="<?php echo $custom_category_link ?>">
<?php echo "'n'nCategory ID: " . $category->cat_ID . "'nCategory Name" . $category->name; ?> </a>
<?php
}``
}
?>