Je travaille sur un plugin, et une partie de celui-ci consiste à définir une valeur d'option qui s'applique à tous les sites d'un réseau WordPress. Je connais les fonctions add_site_option et get_site_option qui vous permettent d'enregistrer la valeur dans la table wp_sitemeta, mais ce que je ne peux pas comprendre, c'est comment placer les champs à l'emplacement approprié dans le backend WordPress, et comment intercepter l'enregistrement de tout le site afin d'insérer l'appel add_site_option lorsque cela se produit.
Pour le premier problème (ajout des champs), j'utiliserais normalement l'API Settings, en particulier register_setting et add_settings_field, pour mettre en liste blanche la nouvelle option, puis insérer un champ pour celle-ci dans la page d'options appropriée. Mais je ne trouve aucune information nulle part sur la question de savoir si vous pouvez utiliser add_settings_field pour ajouter un champ à la page Paramètres dans la nouvelle section Administrateur réseau du backend, s'il existe une fonction alternative qui fait ce qu'elle fait pour les pages Administrateur réseau, ou si vous suffit d'injecter le HTML manuellement. (Vous pouvez le faire manuellement en écrivant une fonction qui fait écho sur le terrain, puis en connectant cette fonction à l'action "wpmu_options", qui s'exécute à la fin de la page Paramètres dans Network Admin. Mais vous devez également gérer les nonces et tout le reste manuellement.)
Le deuxième problème implique probablement de trouver une action qui s'exécute lorsque l'utilisateur clique sur "Enregistrer" sur la page Paramètres d'administration réseau, mais je n'ai pas encore pu le trouver. Toute piste serait grandement appréciée.
Alors - des pensées? Existe-t-il un moyen élégant de permettre la gestion des options du site pour un plugin via la nouvelle zone d'administration réseau? Si oui, comment ça se passe?
la source
Fondamentalement, si vous ne souhaitez pas créer votre propre page de paramètres d'administration réseau, vous devrez utiliser les deux crochets mentionnés séparément dans les deux autres réponses:
Pour une explication très claire et un exemple de code utile, voir http://zao.is/2013/07/adding-settings-to-network-settings-for-wordpress-multisite/
la source
Je crains que la seule méthode que je connaisse est la méthode que vous avez mentionnée pour injecter manuellement le html et gérer vous-même les mises à jour des options. L'action que vous devez utiliser pour enregistrer vos options est update_wpmu_options. Si nécessaire, je peux fournir un exemple plus détaillé, faites le moi savoir.
la source