Сторінка налаштувань «Глобальна» для плагіну з декількома сайтами


24

Я працюю над плагіном, який буде встановлений у багатосторонньому екземплярі.

Як створити єдину сторінку налаштувань, яку можна побачити лише на рівні "Мережевий адміністратор" - більшість я бачив посібників, що стосуються стандартного плагіна на рівні блогу. Будь-які посилання на інформацію були б корисні, інакше я просто перейду через теги по всьому сайту, щоб побачити, як це робиться там.

[Оновлення]

Схоже , використовується sitewide_tags add_site_option, get_site_optionі update_site_option, і ці функції використовують wp_sitemeta. Однак, як я бачу, немає підтримки для реєстрації_настроювання, додавання_набору тощо, тому вам доведеться отримувати та встановлювати параметри вручну.

Відповіді:


6

Як орієнтир

Щоб створити мережеві або глобальні налаштування, потрібно зробити наступне

  • Додати сторінку налаштувань

    add_submenu_page( 'settings.php'... # cf options.php for blog level`
  • Додати глобальний варіант

    add_site_option($key,$value)
  • Оновіть глобальний варіант

    update_site_option($key,$value)
  • Отримайте варіант сайту

    get_site_option($key)

Глобальні настройки зберігаються в sitemetaтаблиці (окремі параметри блогу зберігаються в <blog_id>_optionsтаблиці

  • Я думаю, що API налаштування функцій на рівні блогу - тому використовується таблиця параметрів, а не sitemeta. Отже, ви не можете використовувати групи опцій тощо тощо на мережевому рівні ( будь ласка, коментуйте, якщо я помилився )

0

Ну, я нещодавно зіткнувся з такою ж потребою, але і відповіді не знав. Хоча явно не відповідаю на ваше запитання, альтернативою є просто створити сторінки з параметрами в параметрі «головного» блогу і перевірити, чи ввімкнено багатомісний сайт.

Це не ідеальний спосіб, але якщо (як і я) ви просто створювали внутрішній плагін для власного використання, це є працездатним. Він також має перевагу в тому, що доступні всі звичайні функції для сторінок адміністратора - яких вони ще не містять у контексті сторінки адміністратора глобальної мережі.


0

При використанні add_submenu_page(), і add_menu_page()т.д. , і очікують , що настройки сторінки з'являться у вашій мультісайтового приладової панелі, розглянути можливість використання network_admin_menuгака замістьadmin_menu

Приклад:

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

        ...
    )
}

Для збереження налаштувань можна використовувати network_admin_edit_{ACTION}гачок дій.

Довідка: https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.