我的网站地址(网址)是http://something.ddns.net/PS。我有一个标题自定义链接菜单网址像这样的"/#services“。这将我带到当前页面上的位置,但我希望它带我到根页面上的位置。我是否可以使用一个变量来表示站点地址(URL)或WordPress地址(URL),例如"/#services"?
我需要这个,因为我想能够改变我的网站的网址,而不需要浏览所有的菜单和更改的URL。我希望菜单从Wordpress的设置中反映站点根目录。
相关问题:当我第一次单击链接时,它不会跳转到页面上的#services,为什么我需要在行中单击它两次?
编辑:为什么有人希望链接相对于根目录而不是站点地址(URL)?
发布于 2020-01-31 11:25:50
如果您的自定义链接URL与您的示例中所写的完全相同,它应该会像预期的那样工作。"/“开头的意思是”站点根“,它应该在单点(第一次)单击时工作。也许你安装了一些与菜单相关的插件,或者你的主题在某种程度上改变了菜单URL。或者涉及客户端javascript。
当您在自定义菜单链接上悬停时,您在浏览器状态栏(左下角)看到了什么URL?应该是[site_root]/#services。
更新:
当WordPress安装在子目录中时,/#services将链接到不正确的页面。在菜单URL中没有添加[site_root]前缀的方法,所以要么使用real使用真正的/PS/#services (并且在更改站点根目录后必须全部更改它们),要么添加过滤器来自动前缀以/开头的所有菜单项。请记住,如果您需要添加到<#>真实站点根的链接,则必须使用完整的URL http://something.ddns.net/而不是/。
function my_nav_menu_link_attributes( $atts ) {
if ( '/' == substr( $atts['href'], 0, 1 ) ) {
$atts['href'] = site_url() . $atts['href'];
}
return $atts;
}
add_filter( 'nav_menu_link_attributes', 'my_nav_menu_link_attributes', 20 );https://wordpress.stackexchange.com/questions/357572
复制相似问题