如何在全网菜单(多站点)中获取正确的URL?

时间:2014-04-09 作者:chap

我正在使用此功能切换到主网站的导航,并将其显示在多站点网络中的所有子网站上。理想情况下,链接应具有以下格式:

http://www.mysite.com/navigation-link

但是在子站点上,URL是http://www.mysite.com/subsite/navigation-link

显然这些页面不存在,所以它只是显示一个空白页面。你知道我如何确保URL与第一个示例相似,以及如何将其合并到我的函数中吗?

功能wp\\u multisite\\u nav\\u menu(){

    global $blog_id;

    $args = array(
            \'menu\' => \'Main Menu\',
            \'theme_location\' => \'main-nav\'

        );

    $main_blog = 1; 

    $main_blog = absint( $main_blog );


    if ( !is_multisite() || $blog_id == $main_blog ) {
        echo wp_nav_menu( $args );
        return;
    }

    else {

    switch_to_blog( 1 );

    echo wp_nav_menu( $args );

    restore_current_blog();

    }

}

1 个回复
SO网友:Innate

您只需要切换到blog 1并获取菜单的功能的最后一部分。

function wp_multisite_nav_menu() {
    
    $args = [
        \'menu\' => \'Main Menu\',
        \'theme_location\' => \'main-nav\'
    ];

    switch_to_blog( 1 );

    echo wp_nav_menu( $args );

    restore_current_blog();
}

结束

相关推荐

How to replace permalinks

我已将wordpress项目导出并导入live server。现在的问题是,我将permalink结构作为“localhost”格式。当我单击网站中的任何链接时,它会将我重定向到localhost。我怎样才能改变这一点?我的htaccess文件如下所示<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /myproject/ RewriteRule ^index\\.php$ - [L] RewriteCo