正如您所描述的,唯一能够真正对结果产生影响的变量是分类法。如果您已验证与的父级存在条款1
以及5
, 和get_terms()
仅返回父级为的条款的条款1
, 它只能表示这个术语1
和期限5
属于不同的分类法。get_terms()
仅当传递的术语数据与传递的分类法关联时,才会返回结果。
你需要记住,all 无论分类如何,术语都存储在wp_terms
桌子关系存储在wp_term_taxonomy
桌子这是术语的分类法和父项保存的位置。
这里有一个小脚本,可以在任何页面上运行。这将打印所有分类法和与该分类法关联的所有术语,如果术语不是顶级术语,还将打印父ID。您可以使用它来“调试”您的问题
$taxonomies = get_taxonomies();
if ( $taxonomies ) {
foreach ( $taxonomies as $taxonomy ) {
$terms = get_terms( $taxonomy );
if ( $terms ) {
echo \'<strong>\' . strtoupper( $taxonomy ) . \'</strong></br>\';
foreach ( $terms as $term ) {
$parent_id = ( 0 != $term->parent ) ? \' and has a parent ID of \' . $term->parent : \'\';
echo \'Term \'. $term->name . \' ID \' . $term->term_id . \' belongs to the taxonomy \'. $taxonomy . $parent_id . \'</br>\';
}
}
}
}