Guia de Início para Desenvolvimento de Plugins para WordPress: Construa sua Primeira Extensão de Funcionalidade do Zero

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

Preparação e configuração do ambiente

Antes de começar a escrever o código, você precisa de um ambiente de desenvolvimento adequado. Isso inclui uma instalação local do WordPress e um editor de código. Ferramentas como XAMPP, MAMP, Local by Flywheel ou Laragon são recomendadas para configurar rapidamente um ambiente de servidor local. Certifique-se de que o seu ambiente esteja utilizando versões mais recentes do PHP (recomendado o PHP 7.4 ou superior) e do MySQL/MariaDB.

Em seguida, você precisa entender a estrutura básica de um plugin para o WordPress. O arquivo mais importante de um plugin é um arquivo PHP principal; o nome desse arquivo e o nome do diretório em que ele está localizado podem ser personalizados, mas deve conter uma específica anotação de cabeçalho de plugin, que serve para informar ao WordPress sobre a existência do seu plugin. Você pode encontrar esse arquivo no diretório de instalação do WordPress. wp-content/plugins Crie uma nova pasta dentro da pasta existente, por exemplo: my-first-plugin

Neste diretório, crie o seu arquivo principal do plugin, por exemplo, nomeie-o como… my-first-plugin.phpO início deste arquivo deve conter as anotações de informações padrão sobre o plugin.

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

Crie o seu primeiro arquivo de plugin.

Agora, vamos começar a criar a estrutura básica do plugin. No diretório do seu plugin, abra o arquivo PHP principal e insira as seguintes informações padrão de cabeçalho do plugin.

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).
<?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
 */

Este comentário é essencial para que o WordPress reconheça os plugins. Nele,Plugin Name Este campo é obrigatório; os demais são opcionais. Após salvar o arquivo, você poderá ver este novo plugin na página “Plugins” do painel administrativo do WordPress e ativá-lo. No momento, ele não possui nenhuma funcionalidade.

Adicionar uma função simples ao plugin.

Uma das funções mais simples é adicionar um menu de gerenciamento personalizado no painel de administração do site. Vamos usar… add_action Anexar função a admin_menu Este gancho está preso a essa ação.

No arquivo do plugin principal, após o bloco de comentários, adicione o seguinte código:

// 在管理菜单中添加一个顶级菜单
function mfp_add_admin_menu() {
    add_menu_page(
        '我的第一个插件设置', // 页面标题
        '我的插件',           // 菜单标题
        'manage_options',     // 权限要求
        'my-first-plugin',    // 菜单 slug
        'mfp_settings_page',  // 回调函数,用于输出页面内容
        'dashicons-admin-generic', // 图标(可选)
        6                     // 菜单位置(可选)
    );
}
add_action('admin_menu', 'mfp_add_admin_menu');

// 定义设置页面的回调函数
function mfp_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <p>Bem-vindo à página de configuração do meu primeiro plugin!</p>
        <form method="post" action="/pt/options.php/" data-trp-original-action="options.php">
            <?php
            // 后续可以在这里添加设置字段
            ?>
            <p class="submit">
                <input type="submit" name="submit" id="submit" class="button button-primary" value="Salvar as alterações">
            </p>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

Este código cria um novo menu principal chamado “Meus Plugins”; ao clicar nele, é aberta uma página de configurações simples. Aqui foi utilizado… add_menu_page Foi criada uma função para registrar o menu, e também foi definida uma função de callback (função de resposta). mfp_settings_page É responsável por renderizar o conteúdo da página.

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

Utilizar ganchos (hooks) e filtros para expandir as funcionalidades.

A principal força do WordPress reside em sua arquitetura de plugins, que é realizada principalmente através dos ganchos de ação (action hooks) e dos ganchos de filtro (filter hooks). Os ganchos de ação permitem que você execute código personalizado em momentos específicos, enquanto os ganchos de filtro permitem que você modifique os dados.

Utilize os ganchos de ação (action hooks) para adicionar notas de rodapé à página.

Suponhamos que queiramos adicionar automaticamente um texto personalizado no final de todos os artigos no nosso site. Isso pode ser feito através da montagem (ou “montagem”) de um código específico em determinadas partes do site. the_content Este filtro é implementado através de um “gancho” (hook). Note que, embora o nome seja “filtro”, na realidade, sua função é diferente da de um filtro tradicional. the_content Geralmente usado para modificar o conteúdo exibido em artigos.

// 在文章内容末尾添加自定义文本
function mfp_append_text_to_content($content) {
    // 确保只在主循环的单篇文章页面添加
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        $custom_text = '<p><em>Este artigo é apresentado para você por “Meu Primeiro Plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'mfp_append_text_to_content');

Esta função mfp_append_text_to_content Receber o conteúdo original do artigo. $contentApós verificar as condições de contexto (assegurando-se de que se trata de uma página de artigo individual), um trecho de texto personalizado é adicionado no final do conteúdo, e, por fim, o conteúdo modificado é retornado. add_filter Registre-o em… the_content Gancho.

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%

Criar opções de plugins configuráveis

Um plugin prático geralmente precisa de algumas opções que possam ser configuradas pelo usuário. O WordPress oferece uma API de configurações para lidar e gerenciar essas opções de forma segura. Vamos adicionar um campo de texto simples à página de configurações existente.

Primeiramente, precisamos registrar um novo conjunto de configurações e adicioná-lo à página de menu existente.

// 初始化插件设置
function mfp_settings_init() {
    // 注册一个新的设置到 “reading” 组(或自定义组)
    register_setting('mfp_plugin_settings', 'mfp_custom_message');

// 在现有页面内添加一个设置区域
    add_settings_section(
        'mfp_section_id',
        '自定义消息设置',
        'mfp_section_callback',
        'my-first-plugin'
    );

// 向该区域添加一个字段
    add_settings_field(
        'mfp_field_id',
        '页脚消息',
        'mfp_field_callback',
        'my-first-plugin',
        'mfp_section_id'
    );
}
add_action('admin_init', 'mfp_settings_init');

// 区域描述回调函数
function mfp_section_callback() {
    echo '<p>Aqui você pode configurar a mensagem que o plugin exibirá no final do artigo.</p>';
}

// 字段输出回调函数
function mfp_field_callback() {
    // 从数据库中获取已保存的选项值
    $message = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
    echo '<input type="text" name="mfp_custom_message" value="' . esc_attr($message) . '" class="regular-text">'echo '<p class="description">Insira a mensagem que você deseja exibir no final de cada artigo.</p>';
}

Em seguida, é necessário modificar o que foi definido anteriormente. mfp_settings_page Função para exibir os campos configurados no formulário.

Leitura recomendada Do Início ao Domínio: Um Guia Completo e Prático para o Desenvolvimento de Plugins para WordPress

// 更新后的设置页面回调函数
function mfp_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <form method="post" action="/pt/options.php/" data-trp-original-action="options.php">
            <?php
            // 输出设置字段、安全随机数和设置组
            settings_fields('mfp_plugin_settings');
            do_settings_sections('my-first-plugin');
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

Finalmente, atualize a função que adicionava o texto anterior, de modo que ela utilize opções configuráveis.

function mfp_append_text_to_content($content) {
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        // 从选项中获取自定义消息,如果不存在则使用默认值
        $custom_text = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
        if (!empty($custom_text)) {
            $content .= '<p><em>'. wp_kses_post($custom_text)'.'</em></p>';
        }
    }
    return $content;
}

Internacionalização de plugins e preparação para lançamento

Para que o plugin possa ser usado por usuários de todo o mundo, a internacionalização é um passo importante. Isso envolve o uso de campos de texto e funções de tradução para encapsular todas as strings visíveis para os usuários.

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.

Use a função de tradução para encapsular o texto.

Você precisa converter todas as strings exibidas nos plugins em… (continue com a instrução ou o objetivo desejado). echo O texto retornado por “ou” (ou qualquer outro comando semelhante) deve ser encapsulado em uma função de tradução específica. A mais comum delas é… () Usado para traduzir e retornar strings, bem como… esc_html__() Usado para traduzir e escapar caracteres HTML.

Modifique o exemplo de código anterior:

// 在管理菜单中添加一个顶级菜单(国际化版本)
function mfp_add_admin_menu() {
    add_menu_page(
        __('我的第一个插件设置', 'my-first-plugin'), // 页面标题
        __('我的插件', 'my-first-plugin'),           // 菜单标题
        'manage_options',
        'my-first-plugin',
        'mfp_settings_page',
        'dashicons-admin-generic',
        6
    );
}
add_action('admin_menu', 'mfp_add_admin_menu');

// 区域描述回调函数(国际化版本)
function mfp_section_callback() {
    echo '<p>' . esc_html__('在这里配置插件在文章末尾显示的消息。', 'my-first-plugin') . '</p>';
}

Ao mesmo tempo, é necessário carregar o campo de texto. Após o bloco de comentários no arquivo principal do plugin, adicione o código para carregar o arquivo de tradução:

// 加载插件文本域
function mfp_load_textdomain() {
    load_plugin_textdomain('my-first-plugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'mfp_load_textdomain');

Preparando o pacote compactado do plugin

Antes de publicar ou compartilhar um plugin, você precisa criar um pacote de lançamento limpo. Certifique-se de que o diretório do seu plugin contém todos os arquivos necessários e exclua quaisquer arquivos desnecessários ou que possam causar problemas durante a distribuição. .git Pastas, arquivos de log ou arquivos de configuração do IDE, entre outros conteúdos irrelevantes. Geralmente, um pacote de lançamento de um plugin mínimo deve conter:
1. Arquivo PHP do plugin principal.
2. Uma opção opcional readme.txt O arquivo segue os padrões de formato do WordPress.org e é utilizado para ser exibido no diretório de plugins.
3. Um arquivo que contém os arquivos de tradução. /languages Pastas (se houverem).
4. Outros pastas de recursos necessários, como JavaScript, CSS ou imagens.

Comprenda todo o diretório do plugin em um arquivo ZIP. Esse arquivo poderá ser instalado através da função “Carregar Plugin” no painel administrativo do WordPress, ou enviado para o diretório oficial de plugins do WordPress.

resumos

Através deste guia, completamos o processo central do desenvolvimento de plugins para o WordPress: desde a preparação do ambiente, criação do arquivo principal com a cabeçalha padrão do plugin, até a adição de funcionalidades utilizando ganchos (hooks) de ações e filtros, passando pela criação de páginas de opções configuráveis com a API de configurações, e finalmente, aprendemos os conceitos básicos de internacionalização. Isso estabelece uma base sólida para você criar plugins mais complexos e práticos. Lembre-se de que uma boa estrutura de código, a adesão aos padrões de codificação do WordPress e um entendimento profundo do seu sistema de ganchos são essenciais para se tornar um desenvolvedor de plugins de sucesso.

Perguntas frequentes Perguntas frequentes

Que conhecimentos de programação são necessários para desenvolver um plugin para o WordPress com o nome ###?

Você precisa ter conhecimentos básicos de programação em PHP, pois o núcleo do WordPress e seus plugins são principalmente escritos em PHP. Ter também um entendimento básico de HTML, CSS e JavaScript será de grande ajuda, especialmente quando precisar personalizar a interface de gerenciamento ou as interações do lado do usuário. É essencial compreender os conceitos fundamentais do WordPress, como artigos, páginas, categorias e ganchos (hooks).

Como deve se chamar o arquivo principal do plugin?

Não há requisitos obrigatórios. O arquivo principal pode ter qualquer nome de arquivo PHP válido, mas geralmente é recomendado usar um nome que corresponda ao nome do diretório do plugin. Por exemplo, se o nome do diretório for… my-super-pluginNesse caso, o arquivo principal pode ser nomeado como “main_file.txt”. my-super-plugin.phpO ponto-chave está nas notas de cabeça dos plugins no topo do arquivo; o WordPress utiliza essas notas para… Plugin Name: Para identificar os plugins.

Como depurar o código do meu plugin?

Existem várias maneiras de depurar plugins. Primeiramente, confira se o plugin está instalado corretamente no seu sistema. wp-config.php Ative o modo de depuração do WordPress no arquivo. WP_DEBUG A constante foi definida como… trueIsso exibirá erros, avisos e notificações do PHP na página. Além disso, é possível utilizar… error_log() A função grava informações de depuração no log de erros do servidor ou utiliza ferramentas de depuração mais avançadas, como o plugin Query Monitor, que fornece detalhes sobre consultas ao banco de dados, ganchos (hooks), erros em PHP, entre outras informações.

Como posso publicar o plugin que desenvolvi no diretório oficial do WordPress?

Para publicar um plugin no diretório oficial de plugins do WordPress.org, você precisa primeiro criar uma conta no WordPress.org e, em seguida, enviar seu plugin para revisão. O código do seu plugin deve seguir a licença GNU GPL e conter um arquivo de licença em formato correto. readme.txt Arquivos. A equipe de revisão verificará a qualidade do código, a segurança e a conformidade com as diretrizes de estruturação dos diretórios. Após a aprovação, você receberá um repositório SVN para gerenciar e atualizar as versões do seu plugin.