Guia de Desenvolvimento de Plugins para WordPress: Crie suas próprias funcionalidades do zero

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

Conceitos Centrais e Preparativos

O desenvolvimento de plugins para o WordPress refere-se à criação de módulos de código PHP independentes, que vão além das funcionalidades padrão do WordPress, com o objetivo de expandir e aprimorar o funcionamento do site. Compreender o seu mecanismo de funcionamento é o primeiro passo para o sucesso. O WordPress utiliza um modelo de programação baseado em eventos (ganchos e filtros) e orientado a objetos. Um plugin é, essencialmente, um ou mais arquivos PHP que interagem com o núcleo do WordPress através de interfaces pré-definidas, permitindo a adição de novas funcionalidades de forma segura.

Antes de começar o desenvolvimento, você precisa de um ambiente de servidor local ou de teste estável. É fortemente recomendado instalar softwares de servidor local, como XAMPP, Local by Flywheel ou DevKinsta. Além disso, assegure-se de ter um editor de código (como VS Code ou PhpStorm) e de ter ativado o modo de depuração do WordPress. Isso é necessário para...wp-config.phpAlgumas constantes são definidas no arquivo:

define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );

AtivarWP_DEBUG_LOGDepois disso, as informações de erro serão registradas./wp-content/debug.logNo arquivo, isso é de vital importância para a resolução de problemas.

Leitura recomendada Guia Avançado para Desenvolvimento de Temas WordPress: Um Tutorial Prático do Início ao Aperfeiçoamento

Crie o seu primeiro plugin.

Crie um plugin, começando por…/wp-content/plugins/Crie uma pasta exclusiva dentro do diretório, por exemplo…my-first-pluginNeste diretório, você deve criar um arquivo PHP principal. O nome do arquivo geralmente é o mesmo que o nome do diretório.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).

Escrever as informações de cabeçalho do plugin

Cada plugin do WordPress precisa de um comentário de cabeça padrão, que serve como o “cartão de identidade” do plugin para que o WordPress o reconheça. Esse comentário deve estar no início do arquivo principal e seguir um formato específico.Plugin NameOutras informações, como a descrição, a versão e o autor, também são muito importantes.

<?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 fará com que o seu plugin seja exibido na lista de plugins do painel administrativo do WordPress, mostrando as informações mencionadas acima.Text DomaineDomain PathIsso foi preparado para a internacionalização (tradução) dos plugins.

Implementar uma função básica

Agora, vamos adicionar uma função simples ao plugin: adicionar automaticamente um texto personalizado no final do conteúdo do artigo. Isso exigirá o uso dos “filtros” (Filters) do WordPress. Os filtros permitem que você modifique os dados antes que eles sejam salvos no banco de dados ou exibidos no navegador.

Nós vamos usar.the_contentEste filtro: no seu arquivo principal do plugin, adicione o seguinte código após as notas de cabeça.

Leitura recomendada Tutorial definitivo para o desenvolvimento de plugins do WordPress: construa o seu primeiro plugin do zero.

// 在文章内容末尾添加自定义文本
function myfp_add_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = ‘<p><em>Obrigado por ler este artigo! Foi fornecido pelo “Meu Primeiro Plugin”.</em></p>’;
        $content .= $custom_text;
    }
    return $content;
}
add_filter( ‘the_content’, ‘myfp_add_text_to_content’ );

Após salvar o arquivo, acesse o painel administrativo do WordPress para ativar este plugin. Ao visualizar um artigo individual, você verá o texto adicionado no final do conteúdo.myfp_add_text_to_contentÉ uma função que definimos; ela recebe o conteúdo do artigo como parâmetro.$contentAo atender aos critérios (trata-se de um único artigo e o processo está ocorrendo no ciclo principal), adicione um trecho de texto e, em seguida, retorne o conteúdo modificado.add_filter()A função monta essa função personalizada no sistema.the_contentNo filtro.

Construir interações usando ganchos (hooks) e filtros

A força dos plugins do WordPress reside no seu rico sistema de ganchos (hooks), que são divididos em Ganchos de Ação (Action Hooks) e Ganchos de Filtro (Filter Hooks). Os Ganchos de Ação permitem que você execute código em momentos específicos, enquanto os Ganchos de Filtro permitem que você modifique dados.

Utilize os ganchos de ação para adicionar um menu de gerenciamento.

Suponhamos que queiramos adicionar uma página de configurações para um plugin, o que exigirá o uso de ganchos de ação (action hooks).admin_menuEle é acionado durante a criação do menu de gerenciamento do backend do WordPress.

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%
// 添加插件设置页面到后台菜单
function myfp_add_admin_menu() {
    add_menu_page(
        ‘我的插件设置’,           // 页面标题
        ‘我的插件’,               // 菜单标题
        ‘manage_options’,       // 权限要求
        ‘myfp-settings’,        // 菜单slug
        ‘myfp_settings_page’,   // 用于显示页面内容的回调函数
        ‘dashicons-admin-generic’, // 图标(可选)
        80                      // 菜单位置
    );
}
add_action( ‘admin_menu’, ‘myfp_add_admin_menu’ );

// 定义设置页面的显示内容
function myfp_settings_page() {
    ?&gt;
    <div class="“wrap”">
        <h1><?php esc_html_e( ‘我的插件设置’, ‘my-first-plugin’ ); ?></h1>
        <p><?php esc_html_e( ‘这是你的第一个插件设置页面。’, ‘my-first-plugin’ ); ?></p>
        <form method="“post”" action="/pt/“options.php”/" data-trp-original-action="“options.php”">
            <?php
            // 后续可以在这里添加设置字段
            settings_fields( ‘myfp_settings_group’ );
            do_settings_sections( ‘myfp-settings’ );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="pt"/></form>
    </div>
    &lt;?php
}

Após ativar o plugin, você verá um novo item no menu “Meus Plugins” no lado esquerdo do painel de controle. Clique nele para acessar a página de configurações personalizadas.add_menu_pageAs funções são essenciais; elas registraram uma página de menu principal.

Criar códigos curtos para aprimorar as funcionalidades da página.

Códigos curtos (shortcodes) são ferramentas poderosas que permitem que os usuários lancem funções de plugins de forma fácil em artigos ou páginas. Você pode usá-los para...add_shortcode()Uma função para registar um código curto.

// 创建一个显示当前时间的短代码
function myfp_current_time_shortcode( $atts ) {
    // 使用 shortcode_atts 设置默认属性并合并用户输入
    $attributes = shortcode_atts( array(
        ‘format’ =&gt; ‘Y-m-d H:i:s’,
    ), $atts );

// 根据属性格式化当前时间
    $current_time = date( $attributes[‘format’] );

// 返回要显示的内容,确保进行转义
    return ‘<p>A hora atual é: ’. esc_html( $current_time ) . ‘</p>’php
add_shortcode( ‘show_time’, ‘myfp_current_time_shortcode’ );

Agora, os usuários podem inserir conteúdo no editor de artigos.[show_time format=“F j, Y”]Este código é usado para exibir a data atual formatada. É um processador de códigos curtos (short code processor).myfp_current_time_shortcodeRecebe um array de atributos e retorna o conteúdo HTML que precisa ser inserido na página.

Leitura recomendada Desenvolvimento de plugins do WordPress do início ao fim: um guia completo para criar um site personalizado.

Segurança de plugins e melhores práticas

Ao desenvolver plugins, a segurança é o fator mais importante a ser considerado. Código inseguro pode levar ao ataque do site. É essencial seguir as seguintes boas práticas.

Validação de dados, escape e limpeza

Todos os dados provenientes de usuários ou de fontes externas (como…)$_GET$_POST$_COOKIETodos esses dados são considerados não confiáveis. É necessário processá-los antes de usá-los em consultas ao banco de dados ou de exibi-los no navegador.

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.
  • Ao exibir os dados no navegador, é necessário utilizar funções de escape para garantir que eles sejam exibidos em formato de texto puro, evitando assim ataques de tipo XSS (Cross-Site Scripting). O WordPress disponibiliza várias funções de escape, dependendo do contexto específico.esc_html()(Usado dentro de elementos HTML)esc_attr()(Usado dentro de atributos HTML)esc_url()(Usado em URLs) ewp_kses_post()(Permite que tags HTML seguros sejam exibidos.)
  • Ao interagir com o banco de dados, use instruções preparadas: nunca combine variáveis diretamente com as consultas SQL. Em vez disso, utilize métodos que permitam a criação de consultas de forma segura e reutilizável.$wpdb->prepare()Métodos ou APIs mais avançadas, como…WP_QueryPor exemplo:
global $wpdb;
$user_id = 123;
$safe_query = $wpdb->prepare( “SELECT * FROM {$wpdb->prefix}posts WHERE post_author = %d”, $user_id );
$results = $wpdb->get_results( $safe_query );

Aqui%d“%s” é um placeholder.$wpdb->prepare()Será processado de forma segura.$user_idVariáveis.

Implementar opções de configuração e segurança

Ao adicionar opções de configuração para um plugin, deve-se utilizar a API de Configurações do WordPress (WordPress Settings API). Esta API lida automaticamente com a verificação de Nonces, a verificação de permissões e o salvamento das opções, simplificando significativamente o processo de segurança.

Primeiro, useregister_setting()Registre um grupo de opções de configuração e, em seguida, utilize-o.add_settings_section()eadd_settings_field()Vamos adicionar um campo. Na função de callback do menu de gerenciamento criada anteriormente…myfp_settings_pageO que foi chamado internamente (ou “internally called”)…settings_fields( ‘myfp_settings_group’ )edo_settings_sections( ‘myfp-settings’ )Serão exibidos todos os campos de segurança necessários, bem como as áreas de configuração relacionadas ao registro. Isso é muito mais prático do que lidar com tudo manualmente.$_POSTOs dados precisam ser muito mais seguros e confiáveis.

resumos

Desde a criação de comentários simples no cabeçalho de um plugin, passando pelo uso de ganchos de ações (actions) e filtros (filters) para interagir com o núcleo do WordPress, até a criação de códigos encurtados (shortcodes) e a gestão de páginas, você já percorreu os passos essenciais no desenvolvimento de plugins. Lembre-se sempre de que a segurança é a mais importante preocupação: verifique, escape e limpe os dados com rigor, e utilize ferramentas de segurança fornecidas pelo WordPress, como o API de Configurações (Settings API). O desenvolvimento de plugins é um processo contínuo de aprendizado; ao ler o código do núcleo do WordPress, consultar os manuais oficiais e participar da comunidade, você poderá criar plugins poderosos, seguros e populares.

Perguntas frequentes Perguntas frequentes

É necessário ter profundo conhecimento em PHP para desenvolver plugins?

Sim, uma base sólida em PHP é essencial, pois o próprio WordPress é desenvolvido em PHP. Você precisa entender conceitos como a sintaxe de PHP, funções, classes e namespaces. Além disso, um conhecimento básico de HTML, CSS e JavaScript também será muito útil para o desenvolvimento de funcionalidades do lado front-end.

Como depurar o código do meu plugin?

O método mais eficaz é ativar o que foi mencionado anteriormente.WP_DEBUGWP_DEBUG_LOGeWP_DEBUG_DISPLAYAlém disso, é possível utilizar…error_log()A função escreve informações de depuração personalizadas no log, ou utiliza ferramentas de depuração profissionais como o Xdebug em conjunto com o seu editor de código para realizar a depuração linha a linha.

Como devo adicionar traduções em línguas ao meu plugin?

Primeiramente, configure corretamente as informações no comentário no início do plugin.Text Domain(tais como ‘my-first-plugin’) eDomain Path(Como ‘/languages’). Em seguida, em todo o código, onde houver strings que precisem ser traduzidas, use algo semelhante a isso.__( ‘Hello World’, ‘my-first-plugin’ )ouesc_html_e( ‘Settings’, ‘my-first-plugin’ )A função de tradução. Por fim, use ferramentas como o Poedit para gerar o resultado..potArquivos de modelo, e com base neles, são criadas versões em diferentes idiomas..poe.moTraduzir o arquivo e colocá-lo no local especificado./languagesNo diretório.

Como publicar um plugin desenvolvido no diretório oficial do WordPress?

Você precisa acessar a página de envio de plugins no site oficial do WordPress. Antes de enviar, verifique se o código segue os padrões de codificação do WordPress, se contém documentação e comentários detalhados, e se não há problemas relacionados aos direitos autorais de bibliotecas comerciais de terceiros. Após o envio, haverá um processo de revisão; se for aprovado, seu plugin estará disponível para busca e instalação por usuários em todo o mundo.