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