问题描述

我一直在试图弄清楚如何获取当前页面的特定分类术语,以便随后可以在页面上填充具有相同术语的其他帖子类型的查询。

基本上:

  • 第 1 页有分类术语 – 教育政策

  • page.php 有四个部分:

    1. 标准循环输出页面,但后来有三个后续查询

    2. 循环为具有分类术语 – 教育政策的事件

    3. 循环了具有分类术语 – 教育政策的报告

    4. 为具有分类术语教育政策的人们循环

我做了页面特定的模板,我可以把这个术语硬编码到额外的循环中,但是我需要弄清楚如何动态地执行 (原来应该是四到五页现在是四十或五十) 。

我发现了一些类似的问题,但是没有一个可以通过实现找到我的方式。

Get current page’s taxonomy 在实际被问到的方面有点令人困惑。

Get the term id belonging to custom taxonomy on a custom single-post-type.php template page

我希望这是有道理的,非常感谢。

最佳解决方案

嗯,如果你正确地为”page” 对象类型注册了一个分类法,然后将这个分类法的术语分配给一个页面… 我相信你可以通过以下方式访问分类法和术语段落:

get_query_var( 'taxonomy' )
get_query_var( 'term' )

如果您使用 print_r($wp_query),则会在生成显示当前页面时看到所有参数。使用上面的代码,您正在从 $wp_query 访问这些参数。

然后用完整的信息获取术语对象,可以使用 get_term_by 函数,就像这样

$term = get_term_by( 'slug', get_query_var('term'), get_query_var('taxonomy') );
echo $term->name;

这将打印该术语的”nice” 名称。

我相信如果您使用 get_query_var('term')$term->slug(获取术语对象后),您可以在所有其他查询中使用该插件。

希望有帮助。我从来没有为页面使用分类。让我知道你怎么样

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。