大家好,
我的想法是,我已经为所有页面设置了自定义菜单(没有问题),这些选项正在通过:
$links = wp_kses(wp_nav_menu($parameters), $allowed_tags);
(我只允许锚标记及其属性)
然后:
<nav class="menu-navigation">
<?php
echo $links;
?>
</nav>
到目前为止一切都很酷,但是菜单上的一些选项是某些页面的部分,比如:
<<p> 回家#接触/strong>显然,在其他页面上,如博客页面,如果没有联系人部分,但我单击该选项,它应该重定向用户到Home#contact,否则不要重新加载页面,只是去到#contact部分。
所以我想用php
检测哪些选项是子选项,并根据当前页面修改其href。我不太了解php
,所以请给出一些想法和明确的步骤来完成这个任务?
提前感谢。
PD:如果可能的话,我想避免使用JS
更新:
遵循几个导航菜单的方法
这是我当前的header-nav代码:https://gist.github.com/duranmla/e70cc6073dfb2d79e19f,我按照建议进行导航。最后这里是我的仪表板https://www.evernote.com/shard/s243/sh/9896863b-c10b-4e32-bad9-5bbc4341cfd9/d373ab95d0c3c3f5d72f455c03dea7d4/deep/0/Fullscreen-8-15-14,-11-35-AM.png
首先,用wp_kses()
包装wp_nav_menu()
似乎没有必要。
要回答您的问题,一个不需要编写太多代码的简单方法是创建两个菜单——一个用于在有联系人部分的页面上显示,另一个用于在其他地方使用。
在您的主题包中,您需要确保有两个菜单位置注册。
register_nav_menus(
array(
'home_navigation' => __('Home Navigation'),
'primary_navigation' => __('Primary Navigation')
)
);
见http://codex.wordpress.org/Function_Reference/register_nav_menus
然后在WordPress管理的外观>菜单下创建您的菜单项。在第一个菜单中,将链接设置为"#contact
",在第二个菜单中设置为"/#contact
"。
然后在主题的header.php模板中,您需要指示要使用哪个导航菜单。如果你的主页是唯一需要替代菜单的页面,那么它会是这样的:
if(is_front_page()){
wp_nav_menu(array('theme_location' => 'home_navigation'));
} else {
wp_nav_menu(array('theme_location' => 'primary_navigation'));
}