Página de configurações 'Global' do plugin multisite

22

Estou trabalhando em um plug-in que será instalado em uma instância multisite.

Como faço para criar uma única página de configurações visível apenas no nível "Administrador da rede"? a maioria dos guias que vi se relacionam a um plug-in de nível de blog padrão. Quaisquer links para informações seriam úteis, caso contrário, eu acabarei passando por tags de todo o site para ver como está sendo feito lá.

[Atualização]

Parece que sitewide_tags usa add_site_option , get_site_option e update_site_option e essas funções usam wp_sitemeta. No entanto, pelo que eu posso ver, não há suporte para register_setting, add_setting, etc, então você precisa obter e definir suas opções manualmente.

    
por anu 26.05.2011 / 14:12
fonte

3 respostas

5

Como referência

Para criar configurações de rede ou globais, você precisa fazer o seguinte

  • Adicione uma página de configurações

    add_submenu_page( 'settings.php'... # cf options.php for blog level'
    
  • Adicione uma opção global

    add_site_option($key,$value)
    
  • Atualizar uma opção global

    update_site_option($key,$value)
    
  • Obtenha uma opção de site

    get_site_option($key)
    

As configurações globais são salvas na tabela sitemeta (as configurações individuais do blog são salvas em <blog_id>_options table

  • Acho que a API de configurações funciona no nível do blog - então, usa a tabela de opções, não a sitemeta. Então, você não pode usar grupos de opções e similares no nível da rede ( por favor, comente se eu entendi errado )
por anu 31.05.2011 / 12:13
fonte
0

Bem, enfrentei a mesma necessidade recentemente, mas também não sabia a resposta. Embora não seja uma resposta à sua pergunta explicitamente, uma alternativa é apenas criar as páginas de opções nas opções do 'principal' do blog e verificar se o multisite está ativado.

Não é a maneira ideal, mas se (como eu) você estivesse apenas criando um plug-in interno para seu próprio uso, é viável. Também tem a vantagem de que todas as funções usuais das páginas de administração estão disponíveis, o que ainda não estão no contexto da página de administração da rede global.

    
por DavidJ 29.06.2011 / 19:53
fonte
0

Quando você usa add_submenu_page() , add_menu_page() etc e espera que as páginas de configurações apareçam em seu painel multisite, considere usar network_admin_menu hook em vez de admin_menu

Exemplo:

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

        ...
    )
}

Para salvar as configurações, você pode usar o gancho de ação network_admin_edit_{ACTION} .

Referência: enlace

    
por Misha Rudrastyh 14.09.2018 / 10:28
fonte