在这种情况下,助手方法看起来可能是正确的解决方案,但当您尝试并认真使用它时,它会带来麻烦。
相反,请忽略get_categories
, 并将真正的API应用于所有分类法,而不仅仅是类别。
首先,我们需要纠正一种误解。您没有显示分类法。您正在分类法(自定义分类法)中显示术语。这听起来可能有点迂腐,但理解API是必不可少的。如果你不做这个区分,事情就会变得混乱,即使它们真的很简单。
分类法是对事物进行分组/过滤/分类的一种方法,例如。tag
, category
, colour
, company
, type
术语是该分类法的一个特殊实例,例如。red
, blue
, green
, yellow
所有条款都在colour
分类法所以您试图显示分类法中的所有术语。这很重要,因为如果你搜索它,就会得到结果。如果您搜索如何显示分类法,则得到的结果要少得多。
这导致我们the more general function get_terms
, 第一个例子回答了您的问题:
$terms = get_terms( array(
\'taxonomy\' => \'post_tag\',
\'hide_empty\' => false,
) );
就像
get_categories
函数,它返回
WP_Term
对象。以下是官方文件中的另一个示例:
$terms = get_terms( array(
\'taxonomy\' => \'my_taxonomy\'
) );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
echo \'<ul>\';
foreach ( $terms as $term ) {
echo \'<li>\' . $term->name . \'</li>\';
}
echo \'</ul>\';
}
其他一般注意事项您的代码有过多的
<?php
和
?>
标签。键入所有那些不必要的打开和关闭PHP标记必须花费很长时间。您不需要在每一行的末尾关闭PHP标记。如果您有5行PHP,那么只需一个开始的PHP标记,然后是5行,然后是结束标记即可。如果文件的最后一行是PHP,您也不需要结束标记,请注意函数如何使用数组而不是字符串作为参数。老年人
get_categories(\'taxonomy=instructors_countries&post_type=instructors\')
样式稍微慢一点,并阻止您使用更高级的功能。例如,不可能执行
meta_query
或
tax_query
在里面
WP_Query
如果你把它作为字符串传入。使用
array( \'taxonomy\' => \'instructors_countries\' .. etc )
相反你甚至可以把它放在多行上,以便阅读在您的示例中,您获取类别,然后立即进入for循环。但如果找不到类别怎么办?还是出了什么问题?在这些情况下
WP_Error
可能已经被退回了。现在,您有了一个PHP错误日志,其中充满了警告或致命错误:(`