Crie uma tela de administração de rede para um plugin do WordPress

Você pode usar a API de configurações para registrar uma tela de configurações para o seu plug-in, mas para poder configurar esse plug-in no nível da rede para uma instalação em vários locais, são necessárias mais algumas etapas.

  • o menu precisa ser registrado em network_admin_menu, em vez deadmin_menu
  • o menu precisa ser adicionado usando add_submenu_page('settings.php', ...)
  • a função de “saída” da página de configurações não pode ser usada settings_fields, em vez disso:

    • defina a ação do formulário para settings.php
    • adicione um campo wp nonce com uma ação desiteoptions
    • adicione algum tipo de identificador para que você possa reconhecer postagens em sua página. Por exemplo, use uma ação desettings.php?settings=mycustomsettings
    • se $_GET['updated']estiver definido, gera uma notificação:

      if ( isset( $_GET['updated'] ) ) {
      ?><div id="message" class="updated notice is-dismissible"><p><?php _e( 'Options saved.' ) ?></p></div><?php
      }
  • adicione um gancho de ação para update_wpmu_options. Nele, você pode analisar os $_POSTdados e atualizar suas opções usando e update_site_option, em seguida, usar wp_redirectpara redirecionar parasettings.php?updated=true&page=mycustomsettings

    if (isset($_GET['settings']) && $_GET['settings'] == mycustomsettings) {
    $options
    = $_POST[mycustomsettings];
    $options
    = $this->sanitizeOptions($options);
    update_site_option
    (mycustomsettings, $options);
    wp_redirect
    (network_admin_url('settings.php?updated=true&page=' . mycustomsettings));
    exit();
    }
  • Atualizar get_optionchamadas paraget_site_option

O resto é semelhante – ligue add_settings_field, register_settingetc.