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

Ron*_*ieT 73 php wordpress wordpress-theming categories

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

$category = single_term_title("", false);
$catid = get_cat_ID( $category );
Run Code Online (Sandbox Code Playgroud)

$category正在显示"娱乐".但我也需要"娱乐"的ID.我该怎么做?

小智 184

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

$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;
Run Code Online (Sandbox Code Playgroud)

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

$category_id = get_cat_ID('Category Name');
Run Code Online (Sandbox Code Playgroud)

  • 这个答案有一些不必要的代码.第一行代码通过使用一个参数 - CATEGORY ID(因为这是get_query_var('cat')返回的内容)获取get_category函数中的完整类别数据.第二行代码实际上从数据中检索id.这意味着get_category函数在这里完全未使用,如果有人只想要id,那么应该使用get_query_var('cat')! (12认同)
  • 需要更换正确的答案!答案标记正确,误导了我. (3认同)
  • 正是我在寻找什么.如果您正在创建一个通用的类别模板,那么比上面的答案更好,因为您只获得类别,页面将显示而不是上面的多类别数组. (2认同)

ash*_*108 61

您可以尝试使用get_the_category():

$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
Run Code Online (Sandbox Code Playgroud)

  • 此方法实际上检查页面上第一个帖子的第一个类别.如果没有帖子或者第一篇帖子有多个类别,则会失败或返回错误信息. (53认同)
  • $ category [0] - > cat_ID准确无误. (15认同)
  • 我同意@JordanEldredge,这将返回不正确的信息. (5认同)
  • 这将返回页面第一个帖子的第一个类别. (3认同)
  • 如果您有子类别,将无法使用! (2认同)

Fre*_*d K 33

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

$cat_id = get_query_var('cat');
Run Code Online (Sandbox Code Playgroud)


Sha*_*ffe 16

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

$current_category = get_queried_object();
Run Code Online (Sandbox Code Playgroud)

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