Estou trabalhando em um plug-in, e parte dele envolve a definição de um valor de opção que se aplica a todos os sites em uma rede WordPress. Eu sei sobre os add_site_option e get_site_option funções que permitem salvar o valor na tabela de wp_sitemeta, mas o que eu não consigo entender é como colocar os campos no local apropriado no backend WordPress, e como interceptar a salvação de todo o site valores para inserir a chamada add_site_option quando isso acontecer.
Para o primeiro problema (adicionando os campos), normalmente eu usaria a API de configurações, especificamente register_setting e add_settings_field, para colocar a nova opção na lista de permissões e, em seguida, insira um campo na página de opções apropriada. Mas não consigo encontrar informações em nenhum lugar sobre se você pode usar add_settings_field para adicionar um campo à página Configurações na nova seção Administrador de Rede do back-end, se houver uma função alternativa que faça o que faz nas páginas de Administrador de Rede ou se você só tem que injetar o HTML manualmente. (Você pode fazer isso manualmente escrevendo uma função que ecoa o campo e, em seguida, conectando-a à ação "wpmu_options", que é executada no final da página Configurações no Network Admin. Mas você também precisa lidar com nonces e tudo o mais manualmente.)
O segundo problema provavelmente envolve encontrar uma ação que seja executada quando o usuário clicar em "Salvar" na página Configurações de administrador de rede, mas ainda não consegui encontrá-la. Alguma pista seria muito apreciada.
Então - pensamentos? Existe uma maneira elegante de permitir o gerenciamento de opções em todo o site para um plug-in através da nova área de Administrador de Rede? Se sim, como é feito?
fonte
Basicamente, se você não deseja criar sua própria página de configurações de administrador de rede, precisará usar os dois ganchos mencionados separadamente nas outras duas respostas:
Para obter uma explicação muito clara e um exemplo de código útil, consulte http://zao.is/2013/07/adding-settings-to-network-settings-for-wordpress-multisite/
fonte
Receio que o único método que conheço seja o método que você mencionou para injetar manualmente o html e lidar com as atualizações das opções. A ação que você precisa usar para salvar suas opções é update_wpmu_options. Se necessário, posso fornecer um exemplo mais detalhado, deixe-me saber.
fonte