web-dev-qa-db-fra.com

Supprimez les types de publication par défaut sur tous les sites sauf le blog principal. WPMU

J'essaie de trouver une solution qui me permettrait de supprimer les types de publications par défaut (pages, publications, commentaires, liens, etc.) de tous les blogs multisites EXECEPT du blog principal. Il restera pleinement fonctionnel. Mon but est d’appliquer un type de publication personnalisé à tous les blogs multi-sites pour remplacer les valeurs par défaut.

Toute aide dans la bonne direction serait grandement appréciée.

-Phil

2
krazymatty

Je n'utilise pas beaucoup le multisite, mais je crois qu'une solution de ce type pourrait fonctionner

Si je ne me trompe pas, global $blog_id; vous permet d'accéder aux différents identifiants "Blogs". Ensuite, le "Blog principal" devrait avoir un identifiant de 1.

Donc, supprimer les menus de type publication de tous les blogs qui n'ont pas l'identifiant 1 irait à quelque chose comme ceci:

<?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');

C'est ici que j'ai obtenu la fonction Supprimer les menus:

http://www.wprecipes.com/how-to-remove-menus-in-wordpress-dashboard

Remarque: cela n'a pas été testé. Juste une théorie. . .J’utilise rarement le multisite et je n’en ai pas un pour l’essayer pour le moment.

0
Jason Bahl

Depuis WP 3.1.0, vous pouvez utiliser remove_menu_page . Exemple:

  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');
  });
0
Florian