【问题标题】:How to modify a child page link with php on Wordpress如何在 Wordpress 上使用 php 修改子页面链接
【发布时间】:2014-08-14 17:23:25
【问题描述】:

你好 stackoverflow 社区,

我的想法是我已经为所有页面设置了自定义菜单(没问题),这些选项正在通过:

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

然后:

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

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

首页#contact

如果没有联系人部分,显然在博客页面等其他页面上,但我单击该选项应该将用户重定向到 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.png

【问题讨论】:

标签: php html wordpress


【解决方案1】:

首先,用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'));

}

【讨论】:

  • 嗨,@simmerdesigns 感谢您的回复,抱歉我的延误我很急于找到解决方案,但我今天将这项任务移至今天,因为我不知道如何处理这个问题。我正在使用您的方法,让我们看看...我会及时通知您,再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多