Je travaille sur un plugin qui sera installé dans une instance multisite.
Comment créer une seule page de paramètres visible au niveau "Administrateur réseau" uniquement - la plupart des guides que j'ai vus se rapportent à un plugin standard de niveau blog. Tous les liens vers des informations seraient utiles, sinon je vais simplement passer en revue les balises du site pour voir comment cela se passe là-bas.
[Mettre à jour]
On dirait que sitewide_tags utilise add_site_option
, get_site_option
et update_site_option
, et ces fonctions utilisent wp_sitemeta. Cependant, d'après ce que je peux voir, il n'y a pas de support pour register_setting, add_setting, etc., vous devez donc obtenir et définir vos options manuellement.
Pour référence
Pour créer des paramètres réseau ou globaux, vous devez procéder comme suit:
Ajouter une page de paramètres
add_submenu_page( 'settings.php'... # cf options.php for blog level`
Ajouter une option globale
add_site_option($key,$value)
Mettre à jour une option globale
update_site_option($key,$value)
Obtenir une option de site
get_site_option($key)
Les paramètres globaux sont enregistrés dans la table sitemeta
(les paramètres individuels du blog sont enregistrés dans la table <blog_id>_options
Lorsque vous utilisez add_submenu_page()
, add_menu_page()
etc. et que vous vous attendez à ce que les pages de paramètres apparaissent dans votre tableau de bord multisite, envisagez d'utiliser network_admin_menu
hook au lieu de admin_menu
Exemple:
add_action( 'network_admin_menu', 'network_settings_page' );
function network_settings_page(){
add_submenu_page(
...
)
}
Pour enregistrer les paramètres, vous pouvez utiliser network_admin_edit_{ACTION}
action hook.
Référence: https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html
Eh bien, j'ai fait face au même besoin récemment, mais je ne connaissais pas non plus la réponse. Bien qu'il ne s'agisse pas d'une réponse explicite à votre question, vous pouvez également créer les pages d'options sous les options du blog principal et vérifier si le multisite est activé.
Ce n’est pas la solution idéale, mais si (comme moi) vous venez de créer un plug-in interne pour votre propre usage, il est réalisable. Il présente également l’avantage que toutes les fonctions habituelles des pages d’administration sont disponibles - qu’elles ne sont pas encore dans le contexte de la page d’administration du réseau global.