Page des paramètres «globaux» pour le plugin multisite


24

Je travaille sur un plugin qui sera installé dans une instance multisite.

Comment puis-je créer une seule page de paramètres visible uniquement au niveau "Administrateur réseau" - la plupart des guides que j'ai vus concernent un plug-in de niveau blog standard. Tout lien vers des informations serait utile, sinon je finirai par parcourir les balises du site pour voir comment cela se fait là-bas.

[Mise à jour]

On dirait que sitewide_tags utilise add_site_option, get_site_optionet 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.

Réponses:


6

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)
  • Obtenez une option de site

    get_site_option($key)

Les paramètres globaux sont enregistrés dans le sitemetatableau (les paramètres de blog individuels sont enregistrés dans le <blog_id>_optionstableau

  • Je pense que l' API Paramètres fonctionne au niveau du blog - utilise donc le tableau des options, pas sitemeta. Donc, vous ne pouvez pas utiliser de groupes d'options et autres au niveau du réseau ( veuillez commenter si je me trompe )

0

Eh bien, j'ai fait face au même besoin récemment, mais je ne connaissais pas la réponse non plus. Bien que ce ne soit pas une réponse explicite à votre question, une alternative consiste simplement à créer les pages d'options sous les options du blog «principal» et à vérifier si le multisite est activé.

Ce n'est pas l'idéal, mais si (comme moi) vous venez de créer un plugin interne pour votre propre usage, c'est réalisable. Il a également l'avantage que toutes les fonctions habituelles pour les pages d'administration sont disponibles - ce qu'elles ne sont pas encore dans le contexte de la page d'administration du réseau global.


0

Lorsque vous utilisez add_submenu_page(), add_menu_page()etc. et attendez que les pages de paramètres apparaissent dans votre tableau de bord multisite, pensez à utiliser le network_admin_menucrochet au lieu deadmin_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 le network_admin_edit_{ACTION}crochet d'action.

Référence: https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.