wordpress测试,如果自定义分类术语是另一个术语的孩子

时间:2011-06-04 22:07:03

标签: wordpress taxonomy

我如何测试wordpress分类/术语页面是否是另一个术语的孩子?例如,如果我对“组合类别”的分类法是分层的。我的顶级术语是“数字”和“打印”。在印刷品中,我有“电视”......还有其他几个。如果我在“电视”档案中,is_tax()和is_tax('电视')一样,但不是is_tax('print')。基本上我喜欢'电视'和它的兄弟姐妹表现一种方式,而“数字”的孩子表现另一种方式。

这是可能的,还是单独的分类法最好服务?

3 个答案:

答案 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
}
?>