我正试图想出一个解决方案,允许我从所有多站点博客(主博客除外)中删除默认的帖子类型(页面、帖子、评论、链接等)。它将保持完全功能。我的目的是将自定义帖子类型应用于所有多站点博客,以替换默认设置。
如果能在正确的方向上提供帮助,我们将不胜感激。
-菲尔
我正试图想出一个解决方案,允许我从所有多站点博客(主博客除外)中删除默认的帖子类型(页面、帖子、评论、链接等)。它将保持完全功能。我的目的是将自定义帖子类型应用于所有多站点博客,以替换默认设置。
如果能在正确的方向上提供帮助,我们将不胜感激。
-菲尔
我不太使用多站点,但我相信类似的方法可能会奏效:
如果我没弄错的话,global $blog_id;
允许您访问各种“博客”ID。然后,“主博客”的ID应为1。
因此,从所有id不为1的博客中删除帖子类型菜单的操作如下:
<?php
function remove_menus() {
global $blog_id, $menu;
if( $blog_id != \'1\' ) {
$restricted = array(__(\'Dashboard\'), __(\'Posts\'), __(\'Media\'), __(\'Links\'), __(\'Pages\'), __(\'Appearance\'), __(\'Tools\'), __(\'Users\'), __(\'Settings\'), __(\'Comments\'), __(\'Plugins\'));
end ($menu);
while (prev($menu)){
$value = explode(\' \',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
}
}
}
?>
add_action(\'admin_menu\', \'remove_menus\');
这就是我获得“删除菜单”功能的地方:http://www.wprecipes.com/how-to-remove-menus-in-wordpress-dashboard
注意:这尚未测试。只是一个理论。我不经常使用多站点,目前也没有一个设置来尝试这个。由于WP 3.1.0,您可以使用remove_menu_page
. 示例:
add_action(\'admin_menu\', function() {
if (!is_main_site()) return;
remove_menu_page(\'edit.php?post_type=post\');
remove_menu_page(\'edit.php?post_type=page\');
});
我的服务器上运行着大约15个WordPress站点,我正在考虑在多站点区域下重新创建这些站点,以避免每次安装都需要更新。我的问题——一年前,我听到一些评论说multisite还没有完全“准备好”,或者可能还有一些怪癖。我真的需要这些坚如磐石,我应该担心吗?