HAS_TERM IF/ECHO ELSE/ECHO函数

时间:2011-05-26 作者:xLRDxREVENGEx

好的,我有一个导航菜单,菜单项的顶层是静态页面。当您突出显示或访问其中一个菜单时,会弹出一个子菜单。每个子菜单都有自己的子菜单,每个子菜单都充满了自定义的分类术语。由于WordPress只在存档页上提供当前菜单项类,因此我需要添加自己的类,或者只添加一些自定义css,以便在查看单个项时显示并突出显示术语父项。

我的问题是,我的代码工作了,但后来它停止了工作。请参见下面的代码

<? 
$has_news = has_term(\'news\');
if ($has_news)
    echo \'<style type=text/css>#navbar{display:block}\';
else
    echo \'\';
?>
这与我的另一个问题有关,但我认为最好是用不同的标签将其放在自己的套件下。

Related Question: Highlight nav menu terms

wpversion:3.1.2

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

问题是你需要通过$post->ID 为了不return false.

更好地使用is_object_in_taxonomy($object_type, $taxonomy) 并在函数中填写术语和税。它返回(boolean), 因此,只需根据结果添加您的类:

echo $class = is_object_in_taxonomy( \'news\', \'your_taxonomy\' ) ? \'current-whatever\' : \'\';

// or: (simplified for readabilities sake:

// set empty and override only in case.
// So you avoid dropping errors if the condition was not met and $current not set.
$class = \'\';
if ( is_object_in_taxonomy( \'news\', \'your_taxonomy\' ) )
    echo $class = \'current-whatever\';

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph