0
38

SHARE

Criando Settings Pages Profissionais no WordPress

Criando Settings Pages Profissionais no WordPress

Aprenda como criar telas de configuração organizadas e reutilizáveis para plugins WordPress. Painel com campos, seção e lógica limpa
Este post é a parte 11 de 15 da Série WordPress Extremo: Arquitetura e Engenharia de Plugins

Fala, pessoal! 👋
Aqui é o Asllan Maciel novamente — e hoje a parada é Settings Page com estilo e organização!

Sabe aquele plugin cheio de add_options_page, campos soltos e sem padrão? Pois é, a gente não faz mais assim.

Neste ponto da nossa jornada, você já criou estrutura em camadas, repositórios, injeção de dependência, logger, WP-CLI… agora chegou a hora de dar ao seu plugin uma interface de configuração decente, modular, com campos reutilizáveis, e fácil de manter.

Bora profissionalizar essa parte também? 🚀


⚙️ Por que criar uma Settings Page do jeito certo?

  • ✅ Centraliza as configurações do plugin em um lugar intuitivo
  • ✅ Facilita manutenção e evolução da interface
  • ✅ Evita duplicação de código (renderização de campos)
  • ✅ Integra com nossa arquitetura de serviços e helpers
  • ✅ Dá uma boa primeira impressão para quem instala seu plugin

🛠️ Etapa 1 – Criando uma classe SettingsPage

Vamos colocar dentro de src/Admin/SettingsPage.php:

<?php
namespace WpArquiteturaExtrema\Admin;

class SettingsPage
{
    public function register()
    {
        add_action('admin_menu', [$this, 'add_menu']);
        add_action('admin_init', [$this, 'register_settings']);
    }

    public function add_menu()
    {
        add_options_page(
            'Configurações WP24H',
            'WP24H Plugin',
            'manage_options',
            'wp24h-settings',
            [$this, 'render_page']
        );
    }

    public function register_settings()
    {
        register_setting('wp24h_settings_group', 'wp24h_api_key');

        add_settings_section(
            'wp24h_main_section',
            'Credenciais de Acesso',
            null,
            'wp24h-settings'
        );

        add_settings_field(
            'wp24h_api_key',
            'API Key',
            [$this, 'render_field_api_key'],
            'wp24h-settings',
            'wp24h_main_section'
        );
    }

    public function render_field_api_key()
    {
        $value = esc_attr(get_option('wp24h_api_key'));
        echo "<input type='text' name='wp24h_api_key' value='$value' class='regular-text'>";
    }

    public function render_page()
    {
        ?>
        <div class="wrap">
            <h1>Configurações do WP24H Plugin</h1>
            <form method="post" action="options.php">
                <?php
                settings_fields('wp24h_settings_group');
                do_settings_sections('wp24h-settings');
                submit_button();
                ?>
            </form>
        </div>
        <?php
    }
}

🧬 Etapa 2 – Registrando no nosso Init

Abra seu Init.php e adicione:

use WpArquiteturaExtrema\Admin\SettingsPage;

public function register()
{
    add_action('init', [$this, 'init_plugin']);
    add_action('init', [$this, 'register_blocks']);

    if (is_admin()) {
        (new SettingsPage())->register();
    }
}

🧪 Etapa 3 – Teste tudo e valide

  1. Ative o plugin
  2. Vá em Configurações > WP24H Plugin
  3. Salve sua API Key fictícia
  4. Use get_option('wp24h_api_key') em qualquer lugar para usar a config

✨ Extras que você pode implementar depois:

  • Organização em abas (com tabs em jQuery)
  • Sanitização avançada dos campos
  • Uso de helpers para renderizar múltiplos campos com estrutura DRY
  • Compatibilidade com REST para manipulação externa

💡 Conclusão

Plugins WordPress profissionais têm painéis de configuração profissionais.

Ao separar a lógica em uma classe dedicada, você ganha clareza, organização e facilita demais a manutenção. Nada de admin_menu perdido no arquivo principal.

Me conta o que achou nos comentários!

Navegação<< Internacionalização e Localização (i18n e l10n)Permissões Customizadas e Controle de Acesso em Plugins WordPress >>

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Como Carregar Scripts e Estilos no WordPress Apenas Quando Necessário

Scripts e Estilos Condicionais: Carregando apenas quando necessário

Internacionalização de Blocos Gutenberg (i18n)

Internationalização de Blocos Gutenberg (i18n)

Como Criar Blocos Condicionais no Gutenberg com Atributos

Como Criar Blocos Condicionais no Gutenberg com Atributos

Comunicação entre Blocos com Block Context API no WordPress

Comunicação entre Blocos com Block Context API no WordPress

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Como Salvar Dados Personalizados no WordPress Usando Blocos Gutenberg e REST API

Salvando Dados Personalizados no Backend via REST API

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!