如果我理解正确,这当然是可能的。
我将从确定当前类别是否有父类别的函数开始。
function category_has_parent($catid){
$category = get_category($catid);
if ($category->category_parent > 0){
return $category->category_parent;
}
return false;
}
在显示FAQ的PHP模板中,我会检查当前类别是否有父类别(如果上面的函数返回其ID)或没有父类别(返回false)。如果不是,我将通过定义
\'parent\' => 0
在查询参数中(当然还有分类法和其他详细信息)。
$args = array(
\'taxonomy\' => \'category\',
\'parent\' => \'0\'
);
$categories = get_categories($args);
您可以随意显示这些类别。
如果当前类别有父类别,则表示它要么是子类别,要么是子类别(或N倍的“子类别”,无所谓)。如果那样的话,我想all children of the parent category.
function get_parent_children( $term_id = 0, $taxonomy = \'category\' ) {
$children = get_categories( array(
\'child_of\' => $term_id,
\'taxonomy\' => $taxonomy,
\'fields\' => \'ids\',
) );
return ( $children );
}
最后,您可以使用父ID和分类法调用上面的函数。如果它返回的是子对象,您应该以自己喜欢的方式显示它们。如果没有,则意味着它只包含文章-在这种情况下,请继续显示它们。
我的建议是使用AJAX动态地重新加载PHP生成的内容。您还可以将当前类别ID存储在DOM中的某个位置(类或某些数据属性)。这样,您甚至不必检查父类别ID。您可以使用AJAX将其作为$\\u GET变量传递。