Preparativos antes do desenvolvimento de plugins
Antes de começar a escrever o código, você precisa criar um ambiente de desenvolvimento adequado e entender a estrutura básica dos plugins do WordPress. Isso inclui a escolha do ambiente de servidor, do editor de texto ou do ambiente de desenvolvimento integrado, além de ter uma compreensão clara da organização dos arquivos do plugin.
Configurar o ambiente de desenvolvimento
Um ambiente de desenvolvimento local eficiente é de extrema importância. Recomendamos o uso de ferramentas como XAMPP, MAMP ou Local by Flywheel para configurar rapidamente um servidor local com PHP, MySQL e Apache/Nginx. Essas ferramentas permitem simular o ambiente de produção, permitindo que você desenvolva e depure sem afetar o site em produção. Além disso, escolha um editor de código poderoso, como o Visual Studio Code ou o PhpStorm, que oferece suporte excelente para PHP, HTML, JavaScript e CSS, incluindo realce de sintaxe, dicas de código e recursos de depuração.
Compreender a estrutura básica do plug-in.
Um plugin para o WordPress é, essencialmente, um ou mais arquivos que se encontram no diretório de plugins do sistema. /wp-content/plugins/ Os arquivos PHP localizados no diretório. Cada plugin precisa de pelo menos um arquivo principal, cujo nome é geralmente único, por exemplo… my-first-plugin.phpA parte inicial deste arquivo principal contém uma observação especial, chamada “Informações da cabeça do plugin”. O WordPress utiliza essas informações para identificar e exibir o seu plugin na interface de gerenciamento em segundo plano. Uma boa estrutura de plugin deve levar em conta a organização do código de diferentes funções em subdiretórios separados. /includes/ Usado para armazenar arquivos das classes principais./js/ e /css/ Usado para armazenar recursos front-end./languages/ Usado para documentos internacionalizados.
Leitura recomendada Guia completo para o desenvolvimento de plugins do WordPress: do iniciante ao lançamento na loja.。
Crie o seu primeiro arquivo de plugin.
Agora, vamos começar a criar o arquivo principal do primeiro plug-in. Vamos começar por escrever as informações de cabeçalho do plug-in e adicionar uma funcionalidade simples para verificar se o plug-in está a funcionar corretamente.
Escrever as informações de cabeçalho do plugin
O ficheiro principal do plugin deve conter um comentário de cabeçalho padrão no início. Este bloco de comentários fornece ao WordPress metadados sobre o nome do plugin, a descrição, a versão, o autor, etc. Eis um exemplo básico:
<?php
/**
* Plugin Name: 我的第一个插件
* Plugin URI: https://yourwebsite.com/my-first-plugin
* Description: 这是一个用于学习的简单 WordPress 插件,它将在文章底部添加一段自定义文本。
* Version: 1.0.0
* Author: 你的名字
* License: GPL v2 or later
* Text Domain: my-first-plugin
*/ Este código deve ser colocado no topo do ficheiro PHP principal do plugin. Guarde este ficheiro em /wp-content/plugins/my-first-plugin/my-first-plugin.php Depois, aceda à página de “Plugins” na área de administração do WordPress e deverá ver um novo plugin chamado “O meu primeiro plugin”, que pode ser ativado. Neste momento, ele ainda não tem nenhuma funcionalidade.
Implementar a primeira funcionalidade simples
Depois de ativar o plug-in, vamos implementar uma funcionalidade clássica: adicionar automaticamente um texto personalizado no final do conteúdo de cada artigo. Vamos usar o the_content Filtro. Modifique o seu ficheiro principal e adicione o seguinte código abaixo das informações de cabeçalho:
/**
* 在文章内容末尾添加自定义文本
*
* @param string $content 文章原始内容。
* @return string 修改后的内容。
*/
function mfp_add_footer_text( $content ) {
// 仅在主查询的单篇文章页面显示
if ( is_single() && in_the_loop() && is_main_query() ) {
$custom_text = '<p><em>Obrigado por ler! Este artigo é apresentado a você por [o meu primeiro plugin].</em></p>'// Criar uma função personalizada para adicionar o texto do rodapé ao conteúdo do post
function mfp_add_footer_text( $content ) {
// Definir uma variável para armazenar o texto personalizado
$$content = ‘’;
// Verificar se o conteúdo personalizado está definido
if ( ! empty( $$custom_text ) ) {
$$content .= $$custom_text;
}
return $$content;
}
// Montar o filtro 'the_content' com a função personalizada
add_filter( 'the_content', 'mfp_add_footer_text' ); Depois de salvar o ficheiro, não é necessário atualizar o back-end. Basta aceder a qualquer artigo no site e verá o texto que adicionámos no final do artigo. Este exemplo demonstra um dos principais modelos de desenvolvimento de plugins do WordPress: a utilização de hooks para intervir nos processos principais do WordPress.add_filter É uma função usada para conectar filtros, e the_content É um dos muitos filtros que podem ser usados para modificar o conteúdo.
Leitura recomendada Guia definitivo para o desenvolvimento de plugins do WordPress: construir plugins profissionais do zero。
Desenvolvimento da funcionalidade principal do plug-in.
Depois de adquirir conhecimentos básicos, podemos explorar funcionalidades mais avançadas, como a criação de páginas de administração e a organização do código em classes. Isto ajuda a criar plugins mais complexos e fáceis de manter.
Criar um menu de gestão de plugins e uma página de configurações.
Muitos plugins precisam fornecer opções de configuração aos usuários. Isso geralmente é feito adicionando uma página de menu ao painel do WordPress. Abaixo está um exemplo de como adicionar uma página de menu de nível superior:
**
* Adicionar uma opção de menu de nível superior no menu de administração
*/
function mfp_add_admin_menu() {
add_menu_page(
'Minhas configurações do plugin', // Título da página
'Meu plugin', // Título do menu
'manage_options', // Requisitos de permissão
'mfp-settings-page', // Slug do menu
'mfp_render_settings_page', // Função de callback para renderizar a página
'dashicons-admin-generic', // Ícone (opcional)
80 // Posição do menu (opcional)
);
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );
/**
* Função de callback para renderizar a página de configurações
*/
function mfp_render_settings_page() {
?>
<div class="wrap">
<h1></h1>
<form action="/pt/options.php/" method="post" data-trp-original-action="options.php">
<?php
// 输出安全隐藏字段
settings_fields( 'mfp_settings_group' );
// 输出设置区块
do_settings_sections( 'mfp-settings-page' );
// 输出保存按钮
submit_button( '保存设置' );
?>
<input type="hidden" name="trp-form-language" value="pt"/></form>
</div>
<?php
} Este código utiliza add_menu_page A função adiciona um novo item de menu e especifica o mesmo. mfp_render_settings_page Função para gerar o HTML da página. Para adicionar campos de formulário que possam ser guardados na página, também precisa de utilizar em conjunto com register_setting, add_settings_section e add_settings_field Usamos funções como setState() e dispatch() para registar e definir as definições de configuração.
Organizar o código utilizando a programação orientada a objetos
Para plugins com funcionalidades um pouco mais complexas, o uso da abordagem orientada a objetos permite encapsular os dados e as funcionalidades em classes, tornando a estrutura do código mais clara e reduzindo os conflitos de nomes. Segue-se um exemplo simples de estrutura de classe:
class MyFirstPlugin {
/**
* 构造方法,用于初始化钩子
*/
public function __construct() {
add_action( 'init', array( $this, 'init' ) );
add_filter( 'the_content', array( $this, 'modify_content' ) );
}
/**
* ‘init’ 钩子的回调函数
*/
public function init() {
// 插件初始化代码,例如注册短代码、自定义文章类型等
load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
/**
* 修改文章内容的回调函数
*/
public function modify_content( $content ) {
// 类内部实现功能逻辑
if ( is_single() ) {
$content .= '<p>Isso é algo que foi adicionado pelo método de classe.</p>';
}
return $content;
}
}
// 实例化插件类
new MyFirstPlugin(); Ao encapsular as funcionalidades… MyFirstPlugin Numa classe, todos os atributos e métodos relevantes estão concentrados no mesmo âmbito. Utilize array( $this, ‘method_name’ ) A sintaxe pode montar métodos de classe nos ganchos do WordPress. Este padrão é recomendado para a criação de plugins de médio e grande porte.
Lançamento e manutenção de plugins
Depois de concluído o desenvolvimento, você precisa garantir que o plug-in seja seguro, eficiente e esteja pronto para ser distribuído a outros usuários. Isso envolve codificação segura, otimização de desempenho e preparação final para o lançamento.
Leitura recomendada Do iniciante ao especialista: guia completo para o desenvolvimento de plugins do WordPress e tutoriais práticos.。
Segurança e validação de dados
A segurança dos plugins é de extrema importância. Nunca confie na entrada do utilizador ou nos dados extraídos diretamente da base de dados. Antes de processar quaisquer dados, estes devem ser validados, limpos e escapados.
* Validação: verificar se os dados estão no formato esperado (por exemplo, se é um endereço de e-mail ou um número). Para isso, pode-se usar filter_var Ou do WordPress. sanitize_* Uma série de funções.
* Limpeza (Sanitização): Remover os caracteres inseguros dos dados antes de os introduzir na base de dados ou de os utilizar para efeitos de saída. Por exemplo, utilizar sanitize_text_field Processar a entrada de texto.
* Escapar (Escaping): Ao exportar dados para HTML, JavaScript ou URL, é necessário escapar de acordo com o contexto, a fim de evitar ataques de cross-site scripting. O WordPress fornece < esc_html, esc_js, esc_url e esc_attr Funções como essas.
Por exemplo, ao imprimir uma variável obtida de um banco de dados:
// 假设 $user_input 是从数据库获取的文本
echo '<div class="message">'`. esc_html($user_input)`.'</div>';
// 或者用于 HTML 属性
echo '<input type="text" value="' . esc_attr( $user_input ) . '">'; Otimização de desempenho e melhores práticas
Um bom plugin deve ter o mínimo de impacto no desempenho do site. Siga as melhores práticas a seguir:
* Carregar recursos conforme necessário: usar wp_enqueue_script e wp_enqueue_style Aplicações web modernas usam JavaScript para carregar os arquivos CSS e JavaScript apenas nas páginas necessárias. Através de wp_enqueue_scripts O gancho (parte frontal) e admin_enqueue_scripts O gancho (em segundo plano) é usado para montar.
* Utilize os ganchos de forma razoável: evite executar uma grande quantidade de código desnecessário sempre que a página é carregada. Monte as suas funções nos ganchos mais adequados e utilize etiquetas condicionais (como <) is_admin(), is_single()) para limitar o âmbito da execução do código.
* Otimização de consultas de banco de dados: minimize as consultas SQL diretas e priorize a utilização da API do WordPress (por exemplo, WP_Query, get_posts). Se for necessário efetuar uma consulta personalizada, certifique-se de utilizar $wpdb Crie uma classe e configure a cache de consultas.
* Fornecer opções de desinstalação e limpeza: Considere se é necessário limpar os dados criados pelo plug-in (como tabelas de banco de dados, opções, etc.) quando o usuário desinstala o plug-in. Isso pode ser feito registrando um gancho de desinstalação (em um arquivo separado).
resumos
Este artigo guiou-o através da jornada central do desenvolvimento de plugins do WordPress. Começámos por configurar o ambiente de desenvolvimento e compreender a estrutura básica, passando depois para a criação do primeiro ficheiro de plugin funcional, explorando tópicos avançados como a adição de uma interface de gestão de back-end e a organização do código com métodos orientados a objetos, terminando por enfatizar a importância da segurança, do desempenho e da preparação para a publicação. Lembre-se de que o núcleo do desenvolvimento de plugins reside na utilização inteligente do vasto sistema de hooks do WordPress para expandir as suas funcionalidades. Ao seguir as normas de codificação segura, otimizar o desempenho e manter o código limpo, conseguirá criar plugins robustos e fiáveis, contribuindo para a comunidade global do WordPress. A prática constante e a leitura do código principal e de outros plugins excelentes são as melhores formas de melhorar as suas competências.
Perguntas frequentes Perguntas frequentes
Para desenvolver um plugin do WordPress, é necessário ser proficiente em PHP?
Apesar de não ser necessário ter um nível de especialista, uma base sólida em PHP é essencial. Você precisa compreender conceitos como sintaxe PHP, funções, arrays, programação orientada a objetos, etc., pois o núcleo do WordPress e os seus plugins e temas são escritos em PHP. Ter conhecimento de HTML, CSS e JavaScript também é fundamental para desenvolver plugins com interatividade front-end.
Como depurar o meu plugin do WordPress?
Primeiro, certifique-se de que em seu… wp-config.php Ative o modo de depuração do WordPress no ficheiro. WP_DEBUG A constante é definida como verdadeira. Isto irá mostrar os erros, avisos e notificações do PHP no ecrã ou registá-los num ficheiro de registo. Em segundo lugar, utilize error_log Funções ou ferramentas, como o plug-in Query Monitor, permitem acompanhar os valores das variáveis e o fluxo de execução. As ferramentas de desenvolvimento do navegador (aba Console e Network) também são essenciais para depurar JavaScript e solicitações AJAX.
Como meu plugin é compatível com diferentes versões do WordPress?
Durante o desenvolvimento, deve-se consultar regularmente a documentação oficial para compreender a desativação e as alterações das funções nas diferentes versões. Utilize lógica condicional e verificação de versão para fornecer compatibilidade com versões anteriores. Por exemplo, você pode usar function_exists() Verifique se uma função está disponível e, caso não esteja, forneça uma implementação alternativa. Além disso, declare claramente no arquivo readme.txt do plugin o intervalo de versões do WordPress que você testou.
Como implementar a internacionalização para o meu plug-in?
O WordPress utiliza a pilha de tecnologia GNU gettext para a internacionalização. Você precisa usar __() ou _e() Os pacotes de funções envolvem todas as cadeias de caracteres que necessitam de tradução. Em seguida, utiliza-se uma ferramenta de criação de ficheiros POT (como o Poedit) para criar modelos de tradução, que os tradutores podem utilizar para gerar ficheiros .mo e .po na respetiva língua. Por último, utiliza-se load_plugin_textdomain() A função carrega o ficheiro de idioma quando o plug-in é inicializado.
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.
- 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 Desenvolvimento de Plugins para WordPress: Do Início à Expertise – Criando Extensões Profissionais
- Desenvolvimento de plugins para WordPress: Do básico ao avançado: Construa o seu primeiro plugin personalizado
- Do Zero ao Um: Um Guia Completo para Desenvolver seu Primeiro Plugin para WordPress Passo a Passo