Страница "Глобальные" настройки для многоузлового плагина


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

Как создать единую страницу настроек, которая видна только на уровне "Администратор сети" - большинство руководств, которые я видел, относятся к стандартному плагину уровня блога. Любые ссылки на информацию были бы полезны, в противном случае я просто просмотрю теги по всему сайту, чтобы посмотреть, как это делается там.

[Обновление]

Похоже, что sitewide_tags использует add_site_option, get_site_option и update_site_option, и эти функции используют wp_sitemeta. Однако, из того, что я вижу, нет поддержки для register_setting, add_setting и т. Д., Поэтому вам нужно получить и настроить параметры вручную.

Author: anu, 2011-05-26

4 answers

В качестве ссылки

Чтобы создать сетевые или глобальные настройки, вам необходимо выполнить следующие действия

  • Добавить страницу настроек

    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. Таким образом, вы не можете использовать группы опций и тому подобное на сетевом уровне ( пожалуйста, прокомментируйте, если я неправильно понял)
 6
Author: anu, 2011-05-31 10:13:38

Ну, недавно я столкнулся с такой же необходимостью, но тоже не знал ответа. Хотя это и не является явным ответом на ваш вопрос, альтернативой является просто создание страниц параметров в разделе "Основные" параметры блога и проверка того, включена ли поддержка нескольких сайтов.

Не идеальный способ, но если (как и я) вы просто создавали внутренний плагин для собственного использования, это выполнимо. Это также имеет то преимущество, что доступны все обычные функции для страниц администратора, которых еще нет в контекст страницы администратора глобальной сети.

 0
Author: DavidJ, 2011-06-29 17:53:12

Когда вы используете 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

 0
Author: Misha Rudrastyh, 2018-09-14 08:28:35

Если вы просто хотите отобразить пункт меню в области администрирования сети для основного сайта блога (идентификатор блога 1), вы можете просто настроить свою форму на этот HTML-код, чтобы сохранить параметры обычного блога 1 (но также отобразить страницу настроек из области нескольких сайтов):

<form method="post" action="<?php echo admin_url('/options.php'); ?>">

При выводе формы для страницы настроек. Он не будет показывать никаких уведомлений о том, что настройки обновлены, но они будут обновлены.

 0
Author: sMyles, 2020-04-03 15:01:36