Guia introdutório para o desenvolvimento de plugins do WordPress: crie a sua primeira extensão de funcionalidade personalizada do zero.

Leitura de 4 minutos
2026-03-17
2026-06-03
2,745
Eu recebo uma comissão quando você faz compras através dos links abaixo, sem custo adicional para você.

Por que é necessário desenvolver plugins personalizados?

O WordPress é conhecido por sua grande capacidade de expansão, e um dos seus segredos principais é o sistema de plugins. Quando as necessidades de um site em termos de funcionalidades vão além do que os temas ou os plugins existentes podem oferecer, desenvolver plugins próprios torna-se a melhor opção. Isso é muito diferente de modificar o tema diretamente. functions.php Quando comparado com a criação de arquivos individuais, a criação de um plugin independente apresenta vantagens significativas. Os plugins são separados dos temas, o que significa que, mesmo que o tema seja alterado, as funcionalidades do plugin permanecem intactas, garantindo sua independência e facilidade de manutenção. Além disso, um plugin bem estruturado pode ser facilmente migrado e reutilizado em diferentes sites, e até mesmo distribuído por canais oficiais ou de terceiros.

Desenvolver plugins personalizados permite que você controle com precisão a lógica das funções, evitando o consumo de recursos de desempenho e possíveis conflitos de código decorrentes da instalação de muitos plugins genéricos. Desde a geração simples de códigos curtos até o processamento avançado de dados e a gestão de fluxos de trabalho, o desenvolvimento de plugins abre as portas para uma personalização profunda do WordPress.

Construa a estrutura básica do seu primeiro plugin.

Um plugin para WordPress é, essencialmente, um ou mais arquivos que se encontram dentro da estrutura do site. wp-content/plugins/ Os arquivos PHP localizados no diretório. O primeiro passo para criar um plugin é estabelecer sua estrutura básica.

Leitura recomendada Guia de Início para Desenvolvimento de Plugins para WordPress: Construa seu Primeiro Plugin Funcional do Zero

Criar o arquivo do plugin principal e adicionar comentários de cabeça

Primeiramente, em wp-content/plugins/ Crie uma nova pasta no diretório, por exemplo… my-first-pluginEm seguida, crie o arquivo PHP principal dentro dessa pasta; geralmente, o nome do arquivo é o mesmo que o nome da pasta.my-first-plugin.php

Hospedagem para sites WordPress da UltraHost
Garantia de reembolso em 30 dias, largura de banda ilimitada e banco de dados, proteção contra DDoS gratuita; desconto de 50% na compra de 3 anos (planos de 4 TB a 10 TB).

O início do arquivo deve conter comentários de cabeçalho de plugin que atendam aos padrões do WordPress; esses comentários são essenciais para que o WordPress reconheça o plugin. Eles fornecem informações básicas sobre o plugin e serão exibidos na página de gerenciamento de plugins no painel administrativo.

<?php
/**
 * Plugin Name:       我的第一个自定义插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个用于学习的 WordPress 自定义插件示例。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Após salvar o arquivo, faça login no painel administrativo do WordPress e vá para a página “Plugins”. Você deve ver um plugin chamado “Meu Primeiro Plugin Personalizado” na lista, e poderá ativar ou desativá-lo. No momento, ele não possui nenhuma funcionalidade real.

Criar uma embalagem segura para as funcionalidades do plugin.

Para evitar conflitos entre os nomes das funções e os nomes dos temas ou de outros plugins, a prática recomendada é encapsular todas as funcionalidades em uma classe ou adicionar um prefixo único a cada função. Aqui, utilizamos a abordagem de classes, pois ela oferece melhor encapsulamento e estrutura organizacional.

No arquivo principal, após as notas de cabeça, podemos começar a definir a classe principal do plugin.

Leitura recomendada Guia Completo para Desenvolvimento de Plugins para WordPress: Crie o Seu Primeiro Plugin Funcional do Zero

if ( ! defined( 'ABSPATH' ) ) {
    exit; // 防止直接访问文件
}

class My_First_Plugin {
    /**
     * 构造方法,用于初始化插件
     */
    public function __construct() {
        // 初始化钩子
        $this->init_hooks();
    }

/**
     * 初始化 WordPress 钩子(动作和过滤器)
     */
    private function init_hooks() {
        // 后续的钩子将在这里添加
    }
}

// 初始化插件
new My_First_Plugin();

Através de if ( ! defined( 'ABSPATH' ) ) Nesta linha de código, garantimos que o arquivo só possa ser acessado através do ambiente WordPress, o que aumenta a segurança. Agora, a estrutura básica do plugin está pronta.

Utilizando ganchos (hooks), é possível expandir as funcionalidades básicas do WordPress.

O núcleo da API de plugins do WordPress são os “ganchos” (Hooks), que permitem que você execute código personalizado em momentos específicos ou em relação a dados específicos. Os ganchos são divididos em dois tipos: Ações (Actions) e Filtros (Filters).

Compreender e adicionar um simples gancho de ação (action hook).

Os ganchos de ação (action hooks) executam o seu código quando um evento específico ocorre, como a publicação de um artigo ou a carga de uma página de gestão. Eles não retornam nenhum valor; simplesmente “fazem” algo.

hospedagem compartilhada da hosting.com
Alto desempenho com CPUs AMD EPYC, armazenamento SSD NVMe e LiteSpeed, suporte interno especializado 24 horas por dia, 7 dias por semana, medidas de segurança avançadas, incluindo SSL, força bruta, malware e proteção contra DDoS, economia de até 73%

Vamos adicionar uma funcionalidade: ao final do conteúdo de cada artigo, será adicionado automaticamente um trecho de texto personalizado. Vamos usar… the_content Este filtro (sim, embora seja chamado de filtro, é frequentemente usado para adicionar conteúdo; tecnicamente, ele é um filtro, pois recebe e retorna conteúdo). No entanto, para demonstrar primeiro uma ação pura, vamos adicionar também uma ação que exibe mensagens na barra de gerenciamento em segundo plano.

Primeiramente, em init_hooks Adicionar um “gancho” (hook) para registro no método:

private function init_hooks() {
    // 在文章内容末尾添加信息的过滤器
    add_filter( 'the_content', array( $this, 'append_custom_text' ) );
    // 在管理栏添加节点的动作
    add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_node' ), 999 );
}

Em seguida, defina o método de callback correspondente dentro da classe:

Leitura recomendada Guia completo para o desenvolvimento de plugins do WordPress: do iniciante ao especialista na criação de funcionalidades personalizadas.

/**
 * 在文章内容末尾添加自定义文本(过滤器回调)
 *
 * @param string $content 原始文章内容。
 * @return string 修改后的文章内容。
 */
public function append_custom_text( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<p><em>Este texto recebe suporte técnico do “Meu Primeiro Plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}

/**
 * 在管理工具栏添加一个自定义节点(动作回调)
 *
 * @param WP_Admin_Bar $wp_admin_bar WordPress 管理栏对象。
 */
public function add_admin_bar_node( $wp_admin_bar ) {
    $args = array(
        'id'    =&gt; 'my_plugin_node',
        'title' =&gt; '我的插件',
        'href'  =&gt; admin_url( 'plugins.php' ),
        'meta'  =&gt; array( 'class' =&gt; 'my-plugin-node' )
    );
    $wp_admin_bar-&gt;add_node( $args );
}

Agora, após ativar o plugin, o texto adicionado será exibido no final de cada artigo na página frontal, e um item de menu chamado “Meus Plugins” também será adicionado à barra de gerenciamento no topo do painel administrativo.

Use filtros para modificar a saída de dados.

Os filtros são usados para modificar os dados que são passados em um ponto específico. Eles recebem um valor e devem retornar o valor modificado. Os que usamos acima… append_custom_text Na verdade, um método é simplesmente um callback (um procedimento que é chamado quando algo acontece) de um filtro. Vamos criar outro exemplo típico de filtro: modificar o comprimento do resumo de um artigo.

Hospedagem Compartilhada InterServer
Hospedagem compartilhada $2.50 USD por mês, primeiro mês $0.1 USD código promocional tryinterserver, 461 scripts de aplicativos em nuvem, instalação com um clique.

Nos init_hooks Adicione o seguinte:

add_filter( 'excerpt_length', array( $this, 'custom_excerpt_length' ), 999 );

Em seguida, defina o método de callback:

/**
 * 修改文章摘要的默认字数长度
 *
 * @param int $length 默认的摘要长度。
 * @return int 修改后的摘要长度。
 */
public function custom_excerpt_length( $length ) {
    // 将摘要长度设置为 30 个字
    return 30;
}

Implementar uma página de opções de plugins configuráveis

Para tornar os plugins mais flexíveis, geralmente é necessário fornecer uma página de configurações para os usuários. O WordPress disponibiliza o “Settings API” para criar páginas de opções de forma segura e padronizada.

Criar um menu de gerenciamento e páginas subordinadas

Primeiramente, precisamos adicionar um item de menu no painel de controle do WordPress. Vamos usar… add_options_page A função adiciona uma subpágina no menu principal “Configurações”.

Nos init_hooks Adicionar uma ação:

add_action( 'admin_menu', array( $this, 'add_plugin_admin_menu' ) );

Definir o método para adicionar um menu:

/**
 * 向 WordPress 后台添加插件设置页面
 */
public function add_plugin_admin_menu() {
    add_options_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 所需权限
        'my-first-plugin',      // 菜单 Slug
        array( $this, 'display_plugin_admin_page' ) // 回调函数
    );
}

Usar a API de configurações para registrar e renderizar campos.

Em seguida, precisamos definir… display_plugin_admin_page Métodos para renderizar o conteúdo da página, bem como para registrar configurações, campos e seções.

Primeiramente, adicione outro “gancho” (hook) para registrar as configurações:

add_action( 'admin_init', array( $this, 'register_plugin_settings' ) );

Em seguida, implemente os métodos relacionados:

/**
 * 使用 WordPress 设置 API 注册设置、字段和章节
 */
public function register_plugin_settings() {
    // 注册一个设置,存储到一个选项 `my_first_plugin_options`
    register_setting(
        'my_first_plugin_options_group', // 选项组名
        'my_first_plugin_options'        // 选项名
    );

// 添加一个设置章节
    add_settings_section(
        'my_first_plugin_main_section',  // 章节 ID
        '主要设置',                      // 章节标题
        array( $this, 'render_section_description' ), // 章节描述回调
        'my-first-plugin'                // 页面 Slug
    );

// 向章节中添加一个文本字段
    add_settings_field(
        'custom_text_field',             // 字段 ID
        '自定义文本',                    // 字段标题
        array( $this, 'render_text_field' ), // 字段渲染回调
        'my-first-plugin',               // 页面 Slug
        'my_first_plugin_main_section'   // 所属章节 ID
    );
}

/**
 * 渲染设置章节的描述文字
 */
public function render_section_description() {
    echo '<p>Aqui você configura as definições do seu primeiro plugin.</p>';
}

/**
 * 渲染自定义文本输入字段
 */
public function render_text_field() {
    $options = get_option( 'my_first_plugin_options' );
    $value = isset( $options['custom_text_field'] ) ? $options['custom_text_field'] : '';
    echo '<input type="text" name="my_first_plugin_options[custom_text_field]" value="' . esc_attr( $value ) . '" class="regular-text" />'echo '<p class="description">O texto inserido aqui será exibido no final do artigo.</p>';
}

/**
 * 渲染插件管理页面的主要内容
 */
public function display_plugin_admin_page() {
    // 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1></h1>
        <form action="/pt/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            // 输出安全字段、章节和字段
            settings_fields( 'my_first_plugin_options_group' );
            do_settings_sections( 'my-first-plugin' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

Finalmente, precisamos modificar o que foi feito anteriormente. append_custom_text Método para ler o texto salvo pelo usuário a partir das opções:

public function append_custom_text( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $options = get_option( 'my_first_plugin_options' );
        $custom_text = isset( $options['custom_text_field'] ) &amp;&amp; ! empty( $options['custom_text_field'] ) ?
            '<p><em>'`. esc_html($options['custom_text_field'])`.'</em></p>' :
            '<p><em>Este texto recebe suporte técnico do “Meu Primeiro Plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}

Agora, os usuários podem personalizar o texto exibido no final dos artigos na página “Configurações” -> “Meus Plugins”.

resumos

Através deste guia, percorremos completamente o processo básico de desenvolvimento de um plugin personalizado para o WordPress: desde a criação da estrutura de arquivos fundamentais e da encapsulação segura do código, até a compreensão aprofundada e o uso dos mecanismos de extensão do WordPress – os ganchos de ações (actions) e filtros (filters) – finalizando com a implementação de um plugin configurável que inclui uma página de definições no backend. Demonstramos também como utilizar o API de configurações do WordPress de forma padronizada para criar páginas de opções, o que garante o armazenamento seguro dos dados e a consistência da interface.

Dominar esses conceitos básicos é um passo importante para avançar no desenvolvimento de plugins mais complexos. Posteriormente, você poderá explorar temas mais avançados, como a criação de tabelas de banco de dados personalizadas, a elaboração de códigos encurtados, a adição de widgets, a programação de endpoints REST API e a implementação de interações AJAX. Lembre-se de que uma boa organização do código, verificações de segurança rigorosas (como verificação de permissões, limpeza e escape de dados) e o cumprimento dos padrões de codificação do WordPress são essenciais para desenvolver plugins de alta qualidade e fáceis de manter.

Perguntas frequentes Perguntas frequentes

Quais são os conhecimentos prévios necessários para o desenvolvimento de plugins?

Você precisa ter conhecimentos básicos da linguagem de programação PHP, incluindo sua sintaxe, variáveis, funções, classes e objetos. Ter também um entendimento básico de HTML, CSS e JavaScript será de grande ajuda, especialmente ao criar plugins que envolvem interação do lado do usuário ou interfaces de backend complexas. É essencial conhecer as operações e a arquitetura básicas do WordPress.

Como depurar um plugin que está em desenvolvimento?

Primeiro, certifique-se de que em seu… wp-config.php O arquivo conterá… WP_DEBUG Defina como trueIsso ativará a função de relatório de erros do WordPress. Use as ferramentas de desenvolvimento do navegador (as abas Console e Network) para verificar erros de JavaScript e solicitações de rede. Para o código PHP, você pode utilizar… error_log() A função registra variáveis ou informações no log de depuração do servidor, ou utiliza plugins de depuração específicos para rastrear o fluxo de execução do código e o estado das variáveis.

É possível mover o código do arquivo functions.php do tema diretamente para um plugin?

Em muitos casos, isso é possível, mas é necessário prestar atenção aos problemas relacionados à referência de caminhos e URLs. Isso pode ser usado no tópico. get_template_directory_uri() Para obter o URI do diretório de temas, deve-se alterar o código no plugin para usar o novo método correspondente. plugin_dir_url(FILE)Da mesma forma, a função para o caminho do diretório de temas. get_template_directory() Também deve ser substituído pelo plugin. plugin_dir_path(FILE)Além disso, é necessário garantir que todas as funcionalidades no código estejam devidamente encapsuladas em classes ou funções com prefixos, a fim de evitar conflitos.

O que deve ser considerado ao desenvolver plugins comerciais?

Os plugins comerciais distribuídos no âmbito de planos de desenvolvimento devem dar maior atenção à qualidade do código, à segurança e à escalabilidade. É essencial realizar uma preparação completa para a internacionalização e a localização (utilizando métodos apropriados). __()_e() Funções e campos de texto devem ser considerados para facilitar a tradução. O código deve seguir os padrões de codificação do WordPress. É necessário levar em conta a licença (geralmente a GPL) e os mecanismos de atualização subsequentes. É também essencial fornecer documentação de uso clara e detalhada, bem como canais de suporte técnico para o plugin. No ecossistema de 2026, garantir a compatibilidade do plugin com as novas versões do WordPress, versões do PHP, temas populares e outros plugins é uma parte importante da manutenção contínua.

Como adicionar suporte a múltiplas línguas a um plugin?

O WordPress utiliza a tecnologia GNU gettext para implementar a internacionalização (i18n). Primeiramente, todas as strings que precisam ser traduzidas em um plugin devem ser envolvidas em funções específicas. __('文本', 'my-first-plugin') Usado para retornar a tradução._e('文本', 'my-first-plugin') É usado para gerar a tradução. Em seguida, utiliza-se uma ferramenta como o Poedit para analisar o código-fonte do plugin e criar o resultado da tradução. .pot Arquivo de modelo. O tradutor criou o arquivo correspondente no idioma desejado com base neste modelo. .po O arquivo é processado e compilado em um formato que pode ser lido pelo computador. .mo Arquivos. Por fim, é necessário… load_plugin_textdomain() A função é integrada ao código de inicialização do plugin para carregar os arquivos de tradução pelo caminho correto.