Page de paramètres 'globale' pour plugin multisite

22

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 finirais par parcourir les balises du site pour voir comment cela se fait.

[Mise à 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.

    
posée anu 26.05.2011 - 14:12
la source

3 réponses

5

À titre de référence

Pour créer des paramètres réseau ou globaux, procédez 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 <blog_id>_options table

  • Je pense que la API de configuration des paramètres fonctionne au niveau du blog. Elle utilise donc la table des options et non la sitemeta. Vous ne pouvez donc pas utiliser de groupes d’options ou autres au niveau du réseau ( veuillez commenter si je me trompe )
réponse donnée anu 31.05.2011 - 12:13
la source
0

Eh bien, j'ai fait face au même besoin récemment, mais je ne connaissais pas non plus la réponse. Bien que vous ne répondiez pas explicitement à 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 - elles n’étaient pas encore dans le contexte de la page d’administration du réseau global.

    
réponse donnée DavidJ 29.06.2011 - 19:53
la source
0

Si vous utilisez add_submenu_page() , add_menu_page() etc. et attendez-vous à 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 le crochet d'action network_admin_edit_{ACTION} .

Référence: enlace

    
réponse donnée Misha Rudrastyh 14.09.2018 - 10:28
la source

Lire d'autres questions sur les étiquettes