Strona ustawień globalnych dla wtyczki dla wielu witryn


24

Pracuję nad wtyczką, która zostanie zainstalowana w instancji wielostanowiskowej.

Jak utworzyć pojedynczą stronę ustawień widoczną tylko na poziomie „Administrator sieci” - większość przewodników, które widziałem, dotyczą standardowej wtyczki na poziomie blogu. Przydałyby się wszelkie linki do informacji, w przeciwnym razie po prostu przejdę przez tagi na całej stronie, żeby zobaczyć, jak się tam robi.

[Aktualizacja]

Wygląda sitewide_tags zastosowań add_site_option, get_site_optioni update_site_option, i tych funkcji korzystać wp_sitemeta. Jednak z tego, co widzę, nie ma obsługi rejestrowania, dodawania, itp., Więc musisz uzyskać i ustawić opcje ręcznie.

Odpowiedzi:


6

Jako odniesienie

Aby utworzyć ustawienia sieciowe lub globalne, musisz wykonać następujące czynności

  • Dodaj stronę ustawień

    add_submenu_page( 'settings.php'... # cf options.php for blog level`
  • Dodaj opcję globalną

    add_site_option($key,$value)
  • Zaktualizuj opcję globalną

    update_site_option($key,$value)
  • Uzyskaj opcję witryny

    get_site_option($key)

Ustawienia globalne są zapisywane w sitemetatabeli (indywidualne ustawienia blogu są zapisywane w <blog_id>_optionstabeli

  • Myślę, że interfejs API ustawień działa na poziomie blogu - używa więc tabeli opcji, a nie sitemeta. Tak więc nie można używać grup opcji i tym podobnych na poziomie sieci ( proszę o komentarz, jeśli się mylę )

0

Cóż, ostatnio spotkałem się z tą samą potrzebą, ale też nie znałem odpowiedzi. Chociaż nie jest to jednoznaczna odpowiedź na twoje pytanie, alternatywą jest po prostu utworzenie stron opcji w opcjach „głównego” bloga i sprawdzenie, czy włączona jest obsługa wielu witryn.

Nie jest to idealny sposób, ale jeśli (tak jak ja) tworzysz tylko wewnętrzną wtyczkę na własny użytek, jest to wykonalne. Ma również tę zaletę, że wszystkie zwykłe funkcje stron administracyjnych są dostępne - których jeszcze nie ma w kontekście globalnej strony administracyjnej sieci.


0

Podczas korzystania add_submenu_page(), add_menu_page()etc i oczekują strony Ustawienia, aby pojawić się w wielu miejscach tablicy rozdzielczej, należy rozważyć użycie network_admin_menuhak zamiastadmin_menu

Przykład:

add_action( 'network_admin_menu', 'network_settings_page' );
function network_settings_page(){
    add_submenu_page(

        ...
    )
}

Aby zapisać ustawienia, możesz użyć network_admin_edit_{ACTION}haka akcji.

Odniesienie: https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.