私はすべてのマルチサイトブログからデフォルトの投稿タイプ(ページ、投稿、コメント、リンクなど)を削除できるようにするための解決策を考え出しています。それは完全に機能し続けるでしょう。私の目的は、デフォルトを置き換えるためにすべてのマルチサイトブログにカスタム投稿タイプを適用することです。
正しい方向へのどんな助けでも大いに感謝されるでしょう。
- フィリップ
私はMultisiteをあまり使用しませんが、私はこのような何かがうまくいくかもしれないと信じています:
私が間違えていないのであれば、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');
});