在Wordpress中有条件地显示页面类型菜单


Conditionally display menu for page type in Wordpress

我对Wordpress比较不熟悉,我正在为客户创建一个自定义主题。我想根据页面类型显示或删除主菜单。我研究了几个选项,比如从header.php中删除导航,并单独引用它,还使菜单有条件,这是可取的。

我有一个自定义的页面类型在我的主题称为"着陆页",我希望菜单永远不会被显示,虽然它会在每一个其他页面。最终会有很多这样的事情,我宁愿我不需要干预。

我宁愿不复制我的header.php文件,但我只能找到参考显示有条件的菜单,像下面的页面名称或ID,这似乎很荒谬。

<?php
 if (is_page('contact')){
 <?php include(TEMPLATEPATH.'/headerA.php'); ?>
}
elseif (is_page('gallery')){
 <?php include(TEMPLATEPATH.'/headerB.php'); ?>
}
else {
 <?php include(TEMPLATEPATH.'/headerA.php'); ?>
}
?>

不像上面那样包含文件,我将把整个内容放在标题中,并使导航具有条件。有人知道我应该如何使用我的自定义页面类型的着陆页,而不是通过页面名称,这样每个页面创建的类型将永远不会有一个菜单?

谢谢

您是在谈论自定义帖子类型(CPT)还是称为landing-page的页面?

它们完全不同。见http://codex.wordpress.org/Post_Types

在任何情况下,这将适用于自定义帖子类型或页面:

if ( !is_singular( 'custom-post-type-name-or-page-slug-here' ) ) {
get_template_part('menu');
}

它说: "如果这个页面不是一个单一的页面或CPT,从主题文件夹加载文件menu.php。"

参见http://codex.wordpress.org/Include_Tags:

get_template_part()标签包含文件{slug}.php或{slug}-{name}.php从当前主题的目录,自定义包括页眉、侧边栏、页脚以外的标签