Preparativos antes do desenvolvimento
Antes de começar a escrever o código, precisamos garantir que o ambiente de desenvolvimento esteja configurado corretamente e entender a estrutura básica dos plugins do WordPress. Um ambiente de desenvolvimento local adequado é a base para um trabalho eficiente.
Criar um ambiente de desenvolvimento local
Primeiramente, você precisa de um ambiente de servidor local para executar o WordPress. Recomendamos o uso de ferramentas integradas como XAMPP, MAMP ou Local by Flywheel. Após a instalação do WordPress, você poderá… wp-content/plugins Comece o desenvolvimento do seu plugin a partir deste diretório. Este é o local onde todos os plugins são armazenados, seja aqueles que você desenvolveu ou aqueles que você instalou a partir do diretório oficial.
Compreender os arquivos principais do plugin
Cada plugin do WordPress precisa de pelo menos um arquivo principal, que serve como o “cartão de identidade” e o “iniciador” do plugin. Geralmente, esse arquivo recebe o nome da função que o plugin desempenha. my-first-plugin.phpO bloco de comentários no topo deste arquivo principal é de extrema importância, pois fornece informações básicas sobre este plugin ao sistema WordPress.
Leitura recomendada Desenvolvimento de plugins para WordPress: Do básico ao avançado: Um guia passo a passo para criar seu primeiro plugin personalizado。
Crie o seu primeiro arquivo de plugin.
Agora, vamos começar pela parte mais básica e criar um plugin simples que tenha funcionalidades reais.
Escreva as notas de cabeça do plugin.
Nos wp-content/plugins No diretório, crie um arquivo chamado… my-first-plugin Crie uma nova pasta. Em seguida, dentro dessa pasta, crie o arquivo principal. my-first-plugin.phpNo topo deste arquivo, você precisa adicionar uma nota de cabeçalho com informações sobre o plugin, de acordo com os padrões do WordPress.
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于学习的简单插件,用于在文章末尾添加自定义文本。
* Version: 1.0.0
* Author: 你的名字
* Author URI: https://yourwebsite.com
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Este código informa ao WordPress que se trata de um plugin e define o nome, a descrição, a versão, entre outras informações, que serão exibidas na interface de administração do site. Após salvar o arquivo, faça login no backend do WordPress e acesse a página de “Plugins”; seu plugin deverá estar listado lá. Agora você pode ativá-lo, embora ele ainda não tenha nenhuma funcionalidade.
Implementar uma função básica: filtrar o conteúdo dos artigos.
Após ativar o plugin, precisamos que ele faça algo. Uma função comum para iniciantes é modificar o conteúdo dos artigos. Vamos usá-la. the_content Este gancho de filtro adiciona automaticamente um trecho de texto personalizado no final de cada artigo.
No arquivo principal my-first-plugin.php Abaixo dos comentários de cabeça, adicionamos o código da função:
Leitura recomendada Como criar um tema profissional do WordPress: um guia completo, do início ao lançamento.。
// 在文章内容末尾添加自定义文本
function myfp_add_custom_text_to_content( $content ) {
// 确保只在主循环的单篇文章页面添加
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><strong>Obrigado pela leitura! Este artigo foi desenvolvido com o apoio do “Meu Primeiro Plugin”.</strong></p>';
$content .= $custom_text;
}
return $content;
}
// 将我们的函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'myfp_add_custom_text_to_content' ); Este código define uma estrutura chamada… myfp_add_custom_text_to_content A função recebe o conteúdo do artigo. $content Como parâmetro, é utilizada uma condição para garantir que o texto seja adicionado apenas na página de um único artigo na parte frontal do site, evitando que ele também seja exibido em outras páginas (como as páginas de listas). Em seguida, um trecho de HTML personalizado é adicionado após o conteúdo original, e o conteúdo modificado é retornado. add_filter() A função “monta” essa função personalizada no núcleo do WordPress. the_content No filtro. Dessa forma, sempre que o WordPress estiver prestes a exibir o conteúdo dos artigos, nossa função será executada primeiro.
Após salvar o arquivo, acesse a página principal do site e leia qualquer artigo. Você notará que o texto de agradecimento que adicionamos já está aparecendo na parte inferior da página.
Adicionar opções de gerenciamento para o plugin
Um plugin bem funcional geralmente requer algumas opções de configuração, que permitem que os usuários façam ajustes no backend. Vamos adicionar uma página de configurações para a função de “texto personalizado” que acabamos de criar.
Criar um menu de gerenciamento de plugins
Primeiramente, precisamos adicionar um novo item de menu no painel de controle do lado esquerdo do backend do WordPress. Isso será feito utilizando as funcionalidades internas do WordPress. add_action() Funções e admin_menu Gancho.
// 添加管理菜单
function myfp_add_admin_menu() {
add_options_page(
'我的第一个插件设置', // 页面标题
'我的插件设置', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单 slug
'myfp_options_page_html' // 显示设置页面的回调函数
);
}
add_action( ‘admin_menu’, ‘myfp_add_admin_menu’ ); add_options_page() A função criará um item de submenu no menu principal “Configurações”. Ela necessita de vários parâmetros: o título da página, o título do menu, as permissões do usuário, um identificador único para o menu (slug), e o nome de uma função de callback responsável por gerar o conteúdo HTML da página de configurações. myfp_options_page_html。
Construir uma página de configurações e salvar os dados.
Em seguida, precisamos definir uma função de callback para renderizar a página de configurações e processar os dados enviados pelo usuário.
Leitura recomendada Tutorial de desenvolvimento de plugins para WordPress: Construa o seu primeiro plugin do zero。
// 渲染设置页面的HTML
function myfp_options_page_html() {
// 检查用户权限
if ( !current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="“wrap”">
<h1></h1>
<form action="/pt/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
<?php
// 输出必要的安全字段
settings_fields( ‘myfp_settings’ );
// 输出设置区域
do_settings_sections( ‘my-first-plugin’ );
// 输出提交按钮
submit_button( ‘保存设置’ );
?>
<input type="hidden" name="trp-form-language" value="pt"/></form>
</div>
‘myfp_field_custom_text’ ]
);
}
add_action( ‘admin_init’, ‘myfp_settings_init’ );
// 渲染文本框的HTML
function myfp_field_custom_text_html() {
// 从数据库获取已保存的值
$options = get_option( ‘myfp_options’ );
$value = $options[‘myfp_field_custom_text’] ?? ‘’; // 使用空合并运算符,如果不存在则赋空值
?>
<input type="“text”"
id="“myfp_field_custom_text”"
name="“myfp_options[myfp_field_custom_text]”"
value="“NO NUMERIC NOISE KEY" 1000”
class="“regular-text”">
<?php
} Este código permite que você obtenha o nome do usuário que está atualmente conectado ao servidor. register_setting、add_settings_section e add_settings_field Uma série de funções foi utilizada para criar, de forma padronizada, uma página de configurações que contém um campo de entrada de texto, utilizando as especificações da API de Configurações (Settings API) do WordPress. O conteúdo inserido pelo usuário é armazenado de forma segura. wp_options data table myfp_options registrado.
Finalmente, precisamos modificar a função que filtrava o conteúdo dos artigos anteriormente, para que ela use o texto obtido do banco de dados, em vez de texto hardcoded (predefinido em código).
function myfp_add_custom_text_to_content( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
$options = get_option( ‘myfp_options’ );
$custom_text = $options[‘myfp_field_custom_text’] ?? ‘’;
if ( ! empty( $custom_text ) ) {
$content .= ‘<p><strong>’ . esc_html( $custom_text ) . ‘</strong></p>’;
}
}
return $content;
} Agora, os usuários podem inserir qualquer texto na página “Configurações” -> “Minhas Configurações de Plugins”. Após salvar, esse texto será exibido no final de todos os artigos no site.
Práticas avançadas de desenvolvimento de plugins e preparação para a publicação
Quando as funcionalidades básicas estiverem concluídas, precisaremos considerar a robustez e a manutenibilidade dos plugins, bem como a forma de compartilhá-los com outras pessoas para que possam usá-los.
Adicionar suporte à segurança e à internacionalização
A segurança é de extrema importância no desenvolvimento de plugins. No exemplo acima, já a utilizamos. esc_html() e esc_attr() Use funções como `esc()` para escapar o conteúdo gerado, a fim de prevenir ataques XSS. Ao processar dados fornecidos pelos usuários, executar consultas no banco de dados ou carregar arquivos externos, é essencial utilizar sempre as funções de segurança fornecidas pelo WordPress. wpdb->prepare()、sanitize_text_field() e check_admin_referer() etc.
Além disso, para que o plugin possa ser usado por usuários em todo o mundo, a internacionalização (i18n) é essencial. Precisamos envolver todas as strings direcionadas aos usuários no plugin usando as funções de tradução do WordPress. Isso exigirá a modificação do nosso código anterior:
1. Já foi especificado nos comentários no início do plugin. Text Domain: my-first-plugin。
2. Carregar o campo de texto. Geralmente, isso é feito no final do arquivo principal:add_action( ‘plugins_loaded’, function() { load_plugin_textdomain( ‘my-first-plugin’, false, dirname( plugin_basename( FILE ) ) . ‘/languages/’ ); } );。
3. Cadeias de caracteres de embalagem. Por exemplo, altere o título da área de configuração para… ( ‘自定义文本设置’, ‘my-first-plugin’ )Altere o título do menu para: ( ‘我的插件设置’, ‘my-first-plugin’ )Dessa forma, o tradutor poderá proceder através… .po/.mo O arquivo fornece versões dessas strings em outros idiomas.
Preparando o plugin para ser lançado no diretório oficial.
Se você deseja enviar um plugin para o diretório oficial de plugins do WordPress.org, é necessário seguir uma série de normas:
1. Normas de código: Adote os padrões de codificação do WordPress.
2. Estrutura do arquivo: Além do arquivo principal, geralmente são necessários também… README.txt(Descrição do plugin, utilizado para a página de diretórios)uninstall.php(Lidar com o trabalho de limpeza durante a desinstalação de plugins), etc.
3. Repositório SVN: O diretório oficial utiliza o Subversion (SVN) para o gerenciamento de versões. Você precisa enviar o código do seu plugin para o repositório SVN especificado.
4. Metadados:README.txt É necessário escrever o conteúdo seguindo um formato específico, que inclua o nome do plugin, uma descrição, o método de instalação, dúvidas comuns, registros de atualizações, entre outros detalhes.
resumos
Através deste tutorial, você completou um ciclo de desenvolvimento completo de um plugin para o WordPress: desde a criação do primeiro arquivo, a escrita de comentários no cabeçalho do código, o uso de ganchos de ação (action hooks) e ganchos de filtro (filter hooks) para implementar funções essenciais, até a adição de páginas de configurações personalizáveis ao plugin. Por fim, você também aprendeu sobre segurança, internacionalização e preparação para a publicação do plugin. Embora este plugin, que adiciona texto personalizado no final dos artigos, seja simples, ele abrange os conceitos e processos mais fundamentais do desenvolvimento de plugins. Ao dominar esses conhecimentos básicos, você poderá construir plugins cada vez mais poderosos e complexos, explorando o vasto sistema de ganchos (Hooks), códigos encurtados (Shortcodes), tipos de artigos personalizados (Custom Post Types – CPT) e a API REST do WordPress. Lembre-se: a prática é a melhor forma de aprender. Tentar modificar o código e adicionar novas funcionalidades é a chave para consolidar seus conhecimentos.
Perguntas frequentes Perguntas frequentes
Como deve se chamar o arquivo principal do plugin?
Não há uma exigência obrigatória para o nome do arquivo principal do plugin, mas ele deve começar com… .php Fim. Geralmente, para garantir clareza e unicidade, usamos nomes que são iguais aos nomes das pastas dos plugins ou que descrevem as funcionalidades dos plugins. Por exemplo… my-awesome-plugin.phpO WordPress reconhece os plugins lendo um bloco de comentários específico no início desse arquivo.
Por que o meu plugin não está aparecendo no menu de administração?
Isso geralmente é causado por vários motivos. Primeiro, verifique se o plugin foi ativado com sucesso. Em segundo lugar, cheque… add_menu_page() Os parâmetros de permissões do usuário (capability) presentes em funções semelhantes devem ser verificados para garantir que o usuário logado atualmente possua as permissões necessárias. manage_optionsPor fim, verifique se sua função está passando os testes corretamente. add_action(‘admin_menu’, …) Montagem. Qualquer erro de sintaxe em PHP pode levar ao fracasso na inicialização de todo o plugin.
Como depurar erros de PHP em um plugin?
Durante a fase de desenvolvimento, é recomendado ativar o modo de depuração do WordPress. Abra o arquivo de configuração do WordPress, que geralmente está localizado no diretório raiz do site. wp-config.php Arquivo: Certifique-se de que as seguintes configurações estão ativadas:
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true ); // 将错误记录到 /wp-content/debug.log
define( ‘WP_DEBUG_DISPLAY’, false ); // 不建议在页面上显示,以免破坏布局
Dessa forma, as mensagens de erro serão registradas no arquivo de log, o que facilita a identificação de problemas. Antes de publicar o plugin, certifique-se de desativar o modo de depuração.
Onde os dados das opções dos plugins são salvos?
Usar o plug-in add_option() ou update_option() Os dados salvos por uma função são armazenados, por padrão, no banco de dados do WordPress. wp_options Na tabela (o prefixo da tabela pode ser diferente). Use. get_option() As funções podem ler esses dados. Para estruturas de dados mais complexas, às vezes também são criadas tabelas em bancos de dados personalizados, mas isso requer um tratamento mais cuidadoso.
Como fazer meu plugin suportar múltiplas línguas (internacionalização)?
Você precisa usar a função de tradução do WordPress para envolver todas as strings direcionadas aos usuários. A mais comum é… __(‘字符串’, ‘text-domain’) e _e(‘字符串’, ‘text-domain’)Em seguida, use ferramentas como o Poedit para extrair essas strings e gerar o resultado desejado. .pot Arquivos de modelo, e crie as versões correspondentes para o idioma desejado (por exemplo, zh_CN.po e .moPor fim, coloque o arquivo de tradução no diretório do plugin. /languages/ Dentro da pasta, e use-o durante a inicialização do plugin. load_plugin_textdomain() As funções as carregam.
O que vem a seguir, o que vem a seguir?
Leitura ampliada e conhecimento prático
Os seguintes estão relacionados ao tópico deste artigo e são adequados para uma leitura mais aprofundada. Geralmente, é melhor priorizar o artigo que está mais próximo do seu problema atual e, em seguida, expandir gradualmente para os tópicos adjacentes.
- Desenvolvimento de temas para WordPress do zero: Criando uma interface de site única e diferenciada
- Guia de Desenvolvimento de Plugins para WordPress: Crie o seu primeiro plugin personalizado do zero
- Tornar-se um desenvolvedor de plugins para WordPress: Um guia completo do zero ao um
- Guia Completo para o Desenvolvimento de Temas WordPress: Um Tutorial Prático do Zero à Proficiência
- Guia Completo para o Desenvolvimento de Temas WordPress: Construindo Modelos de Sites de Nível Profissional do Zero