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



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

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

这是我目前拥有的代码:

    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(); 
}

我期待菜单放置在"主导航菜单"位置。

我错过了什么?

任何澄清都值得赞赏。

更新

设法为我的主要和次要菜单弄清楚了它,但是如何让网站标题更改为主网站标题和超链接?

这是我目前拥有的代码减去网站标题开关

//*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();  
}
} 

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

感谢您的见解。

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

如果您将其放入网络激活的插件中,这应该可以解决问题。阅读评论以了解它到底做了什么。它可能无法正常工作,具体取决于您的主题的制作方式。我为二十一一主题制作了它。

请记住,它将在使用路径"/"调用它的所有位置更改主 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;
}

相关内容

  • 没有找到相关文章

最新更新