繁体   English   中英

如何在Wordpress上使用php修改子页面链接

[英]How to modify a child page link with php on Wordpress

嗨stackoverflow社区,

好吧,我认为我已经为所有页面设置了自定义菜单(没有问题),选项正在通过:

$links = wp_kses(wp_nav_menu($parameters), $allowed_tags); (我只允许锚标记及其属性)

接着:

<nav class="menu-navigation">
 <?php
 echo $links;
 ?>
</nav>

到目前为止,一切都很酷,但是菜单上的某些选项是某些页面的部分,例如:

首页#接触

显然,在其他页面(例如博客页面)上,如果没有联系人部分,但我单击该选项,则应将用户重定向到Home#contact,否则不重新加载页面,而只是转到#contact部分。

所以我想用php检测哪些选项是子选项,并根据当前页面修改其href。 我对php了解还不够,所以请提出任何想法并清除演练以完成此操作?

提前致谢。

PD:如果可能,我想避免使用JS


更新:

遵循几种导航菜单的方法

这是我当前的抬头导航代码: 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巴纽

首先,用wp_kses()包装wp_nav_menu() wp_kses()似乎是不必要的。

为了回答您的问题,一种无需太多编码的简单方法是创建两个菜单-一个菜单用于在包含联系人部分的页面上显示,一个菜单用于其他地方。

在主题包中,您需要确保注册了两个菜单位置。

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'));

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM