我如何测试wordpress分类/术语页面是否是另一个术语的孩子?例如,如果我对“组合类别”的分类法是分层的。我的顶级术语是“数字”和“打印”。在印刷品中,我有“电视”......还有其他几个。如果我在“电视”档案中,is_tax()和is_tax('电视')一样,但不是is_tax('print')。基本上我喜欢'电视'和它的兄弟姐妹表现一种方式,而“数字”的孩子表现另一种方式。
这是可能的,还是单独的分类法最好服务?
答案 0 :(得分:7)
在那个页面中说archive-portfolio-categories.php或者只是archive.php ..我相信你可以使用全局变量$ term来确定你是否在子页面上。 E.g:
<?php
$term = get_term_by( 'slug', get_query_var( 'term' ) );
if($term->parent > 0)
{
// THIS IS A CHILD PAGE
// .. DO STUFF HERE..
}
else
{
// THIS IS THE PARENT PAGE
// .. DO OTHER STUFF HERE..
}
?>
答案 1 :(得分:1)
如果您只有2个带有slugs&#39; print&#39;和&#39;数字&#39;。此代码也适用于更深层次的分类树。
$current_tax = wp_get_post_terms( $post->ID, 'portfolio-categories', array() );
$current_tax_id = $curcat[0]->term_id;
$digital = get_term_by( 'slug', 'digital', 'portfolio-categories', OBJECT );
$print = get_term_by( 'slug', 'print', 'portfolio-categories', OBJECT );
$sub_digital = get_term_children( $digital->term_id, 'portfolio-categories' );
$sub_print = get_term_children( $print->term_id, 'portfolio-categories' );
// this variable will hold the current top-level taxonomy term ID.
$parent_cat_id = in_array($current_tax_id, $sub_digital) ? $digital->term_id : $print->term_id;
请注意,我已从我自己的工作代码更改为代码。可能会有小错字。所以请检查并不要盲目复制粘贴。
答案 2 :(得分:1)
全球$术语未出现。 但是你可以使用全局$ wp_query,你可以在分类法中测试 - {tax} .php:
<?php
global $wp_query;
var_dump($wp_query);
?>
我们看到$ wp_query-&gt; queried_object-&gt;父级,并且:
<?php
global $wp_query;
var_dump($wp_query);
if($wp_query->queried_object->parent == '0' && is_tax()){
//parent
}else {
//child
}
?>