在WordPress

时间:2016-03-15 22:13:53

标签: php wordpress

有没有办法在WordPress动态导航菜单中创建外部(自定义)链接?

我的意思是,如果外部网站的URL或子域名发生变化,使用自定义链接添加到菜单中的外部网站的链接将继续有效。例如,位于www.myblog.com的WordPress网站将在导航菜单中显示自定义链接,该链接可访问www.externalsite.com/link1

通常你会添加整个网址。但有没有办法只添加/ link1和WordPress会添加前面的一切?这样,如果www.externalsite.com更改为dev.externalsite.com,那么链接不需要手动更改?

我认为可能有办法使用$_SERVER['HTTP_HOST']来做到这一点 但我不知道该做什么(可能是标题或函数文件)以及如何去做。

2 个答案:

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