如何在wordpress多站点网络中创建单个导航菜单

时间:2013-08-09 08:14:48

标签: wordpress

如何创建一个单/主导航菜单,其中包含前面/用户端的wordpress多站点中所有网站的菜单。

就像我在母网站和子网站上都有一个管理页面一样,如何将菜单Admin与site1的子菜单管理,site2的管理以及所有...进行分组...

我试过,这样的2-3个代码

  

//存储当前正在查看的blog_id全球$ blog_id;   $ current_blog_id = $ blog_id;

     

//切换到ID为1的主博客   switch_to_blog(1);

     

wp_nav_menu();

     

//输出WordPress导航菜单// wp_nav_menu(array('menu'=>   'homepagemenu'));

     

// wp_nav_menu(// array('theme_location'=>'homepagemenu')//); //   //

     

//切换回正在查看的当前博客   switch_to_blog($ current_blog_id);

1 个答案:

答案 0 :(得分:1)

您可以修改此插件的主要功能:http://wordpress.org/plugins/hyper-admins/但是它会将您网站的菜单添加到管理栏,而不是前端。

首先,您应该创建一个site-specific-plugin,其功能是加载网络中的网站:

function all_the_sites_menu() {
if ( ! is_super_admin() )
    return;

// Get all blog ids
global $wpdb;

$blog_ids = $wpdb->get_col( $wpdb->prepare( "
    SELECT blog_id 
    FROM {$wpdb->blogs}
    WHERE site_id = %d
    AND spam = '0'
    AND deleted = '0'
    AND archived = '0'
    ORDER BY registered DESC
", $wpdb->siteid ) );

    echo '<ul>'; //start the list

foreach ( $blog_ids as $blog_id ) {
    $blog_id = (int) $blog_id;
    $blog = get_blog_details( $blog_id );
    echo '<li><a href="http://' . $blog->siteurl . $blog->path .'">';
            echo $blog->blogname . '</a></li>';
}

    echo '</ul>'; //end the list

}

然后你可以在主题中插入一个标签来输出列表,如下所示:

<?php all_the_sites_menu(); ?>