如何在多站点网络中显示主站点的主菜单

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在多站点网络中显示主站点的主菜单相关的知识,希望对你有一定的参考价值。

我已设法切换子网站的主导航菜单,以显示主站点主导航。

但是,它呈现在站点标题之上,而不是在代码中指定的菜单位置。

这是我目前的代码:

    function wp_multisite_nav_menu() {
    global $blog_id;
}
    if ( ! is_multisite() || 2 == $blog_id ) {

    switch_to_blog( 1 );

    wp_nav_menu( array(
        'menu'              => 2,
        'fallback_cb'       => false,
        'menu_class'        => 'genesis-nav-menu',
        'theme_location'    => 'Primary Navigation Menu',

    )); 

    restore_current_blog(); 

}

我希望菜单放在“主导航菜单”位置。

我错过了什么?

任何明确表示赞赏。

UPDATE

我设法找出我的主要和次要菜单但是如何让网站标题更改为主网站标题和超链接?

这是我目前的代码减去站点标题开关

//*Multisite global menus

//*Primary global menu
add_action('genesis_after_header', 'primary_menu_switch');
function primary_menu_switch() {
    global $blog_id;
    if ( ! is_multisite() || 2 == $blog_id ) {
    switch_to_blog( 1 );

    wp_nav_menu( array(
        'menu'              => 2,
        'fallback_cb'       => false,
        'menu_class'        => 'genesis-nav-menu',
        'theme_location'    => 'primary'
    ) );

    restore_current_blog(); 
}
}


//*Secondary global menu
add_action('genesis_header_right', 'secondary_menu_switch');
function secondary_menu_switch() {
    global $blog_id;
    if ( ! is_multisite() || 2 == $blog_id ) {
    switch_to_blog( 1 );

    wp_nav_menu( array(
        'menu'              => 17,
        'fallback_cb'       => false,
        'menu_class'        => 'genesis-nav-menu menu-primary responsive-menu',
        'theme_location'    => 'primary'

        ));         
    restore_current_blog(); 
}
}

//*Use main site title

function site_title_switch() {
    global $blog_id;
    if ( ! is_multisite() || 2 == $blog_id ) {

    switch_to_blog( 1 );



   restore_current_blog();  

}
} 

我是一个完整的新手,请原谅黑客的工作。

您的见解表示赞赏。

答案

这是更新问题的答案,而不是标题中的问题。

如果你把它放在网络激活的插件中,这应该可以解决问题。阅读评论,看看它到底做了什么。根据主题的制作方式,它可能无效。我为Twenty Eleven主题做了。

请记住,它将使用路径“/”更改主页URL,而不仅仅是在标题中。

add_filter( 'option_blogname', 'function_to_filter_the_blogname' );

// Changes the blog name of all sites that are not the main one to the name of the main one, only outside of the admin panel
function function_to_filter_the_blogname( $name ) {
    $main_site_id = get_main_site_id();
    if ( get_current_blog_id() != $main_site_id && ! is_admin() ) {
        return get_blog_option( $main_site_id, 'blogname' );
    }
    return $name;
}

add_filter( 'home_url', 'function_to_filter_the_home_url', 10, 4 );

// Changes the home URL of all sites that are not the main one to the home URL of the main one, only outside of the admin panel and only when the path is '/'
function function_to_filter_the_home_url( $url, $path, $orig_scheme, $blog_id ) {
    $main_site_id = get_main_site_id();
    if ( $blog_id != $main_site_id && ! is_admin() && '/' == $path ) {
        return get_blog_option( $main_site_id, 'home' );
    }
    return $url;
}

以上是关于如何在多站点网络中显示主站点的主菜单的主要内容,如果未能解决你的问题,请参考以下文章

wordpress 多站点 wp_update_nav_menu_item 返回 $menu_item_db_id 但未显示在菜单中

在多站点上为 Sonata Admin 同步缩略图

如何在只有***元素的 asp.net 中制作基于站点地图的菜单?

使用 Scrapy 在 Python 中进行 Webrawling - 如何强制页面显示面包屑菜单?

在多站点 Magento 设置上配置博客

如何自定义要在“添加更多 portlet”菜单中显示的 portlet