Ich arbeite an einem Plugin, und ein Teil davon besteht darin, einen Optionswert festzulegen, der für alle Sites in einem WordPress-Netzwerk gilt. Ich kenne die Optionen add_site_option und get_site_option Funktionen , mit denen Sie den Wert in der Tabelle wp_sitemeta speichern können. Was ich jedoch nicht herausfinden kann, ist, wie die Felder an der richtigen Stelle im WordPress-Backend platziert werden und wie das Speichern der gesamten Site abgefangen wird Werte, um in diesem Fall den Aufruf add_site_option einzufügen.
Für das erste Problem (Hinzufügen der Felder) würde ich normalerweise die Einstellungs-API verwenden, insbesondere register_setting und add_settings_field, um die neue Option auf die Whitelist zu setzen und anschließend ein Feld in die entsprechende Optionsseite einzufügen. Ich kann jedoch nirgendwo Informationen darüber finden, ob Sie mit add_settings_field ein Feld zur Seite "Einstellungen" im neuen Abschnitt "Netzwerkadministration" des Backends hinzufügen können, ob es eine alternative Funktion gibt, die die Netzwerkadministrationsseiten unterstützt, oder ob Sie dies tun Sie müssen nur den HTML-Code manuell einfügen. (Sie können dies manuell tun, indem Sie eine Funktion schreiben, die das Feld wiedergibt, und diese Funktion dann mit der Aktion "wpmu_options" verbinden, die am Ende der Seite "Einstellungen" in Network Admin ausgeführt wird. Dann müssen Sie sich aber auch mit Nonces befassen und alles andere manuell.)
Das zweite Problem besteht wahrscheinlich darin, eine Aktion zu finden, die ausgeführt wird, wenn der Benutzer auf der Seite "Netzwerkadmin-Einstellungen" auf "Speichern" klickt, die ich jedoch noch nicht finden konnte. Irgendwelche Hinweise wären sehr dankbar.
Also - Gedanken? Gibt es eine elegante Möglichkeit, die Verwaltung von Sitewide-Optionen für ein Plugin über den neuen Netzwerkadministrationsbereich zu ermöglichen? Wenn ja, wie geht das?
quelle
Wenn Sie keine eigene Seite mit Netzwerkadministratoreinstellungen erstellen möchten, müssen Sie grundsätzlich beide Haken verwenden, die in den beiden anderen Antworten getrennt aufgeführt sind:
Eine sehr klare Erklärung und ein nützliches Codebeispiel finden Sie unter http://zao.is/2013/07/adding-settings-to-network-settings-for-wordpress-multisite/
quelle
Ich befürchte, dass die einzige mir bekannte Methode die von Ihnen erwähnte ist, das HTML manuell zu injizieren und die Aktualisierungen der Optionen selbst vorzunehmen. Die Aktion, die Sie zum Speichern Ihrer Optionen verwenden müssen, lautet update_wpmu_options. Bei Bedarf kann ich ein ausführlicheres Beispiel liefern, lassen Sie es mich einfach wissen.
quelle