删除除主要博客以外的所有网站上的默认帖子类型。WPMU

时间:2012-01-27 作者:krazymatty

我正试图想出一个解决方案,允许我从所有多站点博客(主博客除外)中删除默认的帖子类型(页面、帖子、评论、链接等)。它将保持完全功能。我的目的是将自定义帖子类型应用于所有多站点博客,以替换默认设置。

如果能在正确的方向上提供帮助,我们将不胜感激。

-菲尔

2 个回复
最合适的回答,由SO网友:Jason Bahl 整理而成

我不太使用多站点,但我相信类似的方法可能会奏效:

如果我没弄错的话,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

注意:这尚未测试。只是一个理论。我不经常使用多站点,目前也没有一个设置来尝试这个。

SO网友:Florian

由于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\');
  });

结束

相关推荐

Multisite / Network - Stable?

我的服务器上运行着大约15个WordPress站点,我正在考虑在多站点区域下重新创建这些站点,以避免每次安装都需要更新。我的问题——一年前,我听到一些评论说multisite还没有完全“准备好”,或者可能还有一些怪癖。我真的需要这些坚如磐石,我应该担心吗?