有没有办法在WordPress动态导航菜单中创建外部(自定义)链接?
我的意思是,如果外部网站的URL或子域名发生变化,使用自定义链接添加到菜单中的外部网站的链接将继续有效。例如,位于www.myblog.com的WordPress网站将在导航菜单中显示自定义链接,该链接可访问www.externalsite.com/link1
通常你会添加整个网址。但有没有办法只添加/ link1和WordPress会添加前面的一切?这样,如果www.externalsite.com更改为dev.externalsite.com,那么链接不需要手动更改?
我认为可能有办法使用$_SERVER['HTTP_HOST']
来做到这一点
但我不知道该做什么(可能是标题或函数文件)以及如何去做。
答案 0 :(得分:0)
你问的是不可能的。如果指向外部站点的链接发生更改,则必须手动将其更新为新URL。
除非您让外部网站告诉您移动到哪里,否则您无法自动更新。但这意味着创建API并允许外部网站远程更新其在您网站上的位置。不理想,因为它可能允许某人向您的网站添加恶意URL。
答案 1 :(得分:0)
您可以在子主题的'functions.php'中添加以下内容。 这会为菜单中存在的所有动态链接设置外部网站。您可以替换代码中的URL,以防它发生变化。
function custom_url_nav_menu_link_attributes( $atts ) {
// Set URL
$url = 'http://example.com';
// Prepend URL on all dynamic links
if ( strpos( $atts['href'], 'http' ) === false ) {
$atts['href'] = $url . $atts['href'];
}
return $atts;
}
add_filter( 'nav_menu_link_attributes', 'custom_url_nav_menu_link_attributes' );