如何创建一个单/主导航菜单,其中包含前面/用户端的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);
答案 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(); ?>