如何测试一个wordpress分类/术语页面是否是另一个术语的子项?例如,如果我有一个"portfolio-categories“的分类法,它是分层的。我的顶级术语是“数字”和“印刷”。在印刷品下面,我有“电视”..还有其他一些人。如果我在“电视”档案中,is_tax()是真的,is_tax(“电视”)也是真的,但is_tax(“print”)不是。基本上,我希望“电视”和它的兄弟姐妹表现出一种方式,而“数字”的孩子们则表现出另一种方式。
这是可能的,还是由单独的分类法提供最好的服务?
发布于 2011-06-28 22:52:02
在该页面中,输入archive-portfolio-categories.php或archive.php。我相信您可以使用全局变量$term来确定您是否在子页面上。例如:
<?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..
}
?>发布于 2012-11-06 17:10:58
如果你只有两个顶层的项目,分别是'print‘和'digital’,这应该是可行的。此代码也适用于更深层次的分类树。
$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;请注意,我已经从我自己的工作代码更改为代码。可能有一些小的打字错误,所以请检查一下,不要盲目地复制粘贴。
发布于 2013-12-11 17:15:15
未显示全局$term。但是你可以使用全局税务,你可以在分类中测试-{ $wp_query }.php:
<?php
global $wp_query;
var_dump($wp_query);
?>我们看到$wp_query->query_object->父级,并且:
<?php
global $wp_query;
var_dump($wp_query);
if($wp_query->queried_object->parent == '0' && is_tax()){
//parent
}else {
//child
}
?> https://stackoverflow.com/questions/6239694
复制相似问题