在WordPress菜单中添加定位

时间:2016-10-12 作者:davewoodhall

我希望在菜单的页面中添加一个锚定到我的页面的选项。

默认情况下,链接具有Navigation Label 通过该页面的链接Remove 和aCancel 链接但是,我需要添加一个带有命名锚的页面。到目前为止,我已经添加了所有链接Custom Links, 但我更希望能够添加我的页面,以防slug 更改。

是否可以通过functions.php, 或者是一个插件?

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

每个导航项目的属性都有一个特定的过滤器:nav_menu_link_attributes.

因此,您可以输入函数。php文件类似于:

function mysite_add_anchor( $atts, $item, $args ) {

    $atts[\'href\'] .= ( !empty( $item->xfn ) ? \'#\' . $item->xfn : \'\' );

    return $atts;

}

add_filter( \'nav_menu_link_attributes\', \'mysite_add_anchor\', 10, 3 );
这样做的目的是检查链接关系(XFN),如果它不是空的,它将用#将其添加到链接的末尾。

有几件事,如果您在菜单项中没有看到“链接关系”,请选中顶部的“屏幕选项”并选中该框。此外,您还可以使用当前未用于高级菜单属性的几乎任何其他属性。

https://codex.wordpress.org/Appearance_Menus_Screen

不确定链接关系是否正确,但这是我使用最少的链接关系。

注意:我没有测试代码。

SO网友:Nabil Kadimi

自定义链接是最简单的解决方案,您可以在修改slug时始终修改菜单。是的,这可以制作成一个插件(或者你的主题functions.php 文件),也许您可以在帖子/页面编辑屏幕上设置一个复选框,更改页面链接的行为,以便example.com/some-page 将成为代码example.com/#some-page.

相关推荐

用标准的干净文件替换NAV-menus.php文件?

我是一个自学成才的wordpress网站设计师,请原谅我的无知。我为一个客户开发的几个网站最近被一个印尼黑客组织破坏了(很有趣!)。客户端没有更新wordpress安装和其他一些危及安全的事情。遗憾的是,没有网站的清理备份。网络主机给了我一个包含恶意软件扫描结果的文本文件。看起来很多受影响的文件都是导航菜单。网站的php文件。文本文件中显示的扫描结果示例如下:“[主目录]/[网站文件夹名称]/wp includes/nav-menu.php:SL-php-INJECTOR-1-ejw.UNOFFICIAL