5.0 KiB
5.0 KiB
name, description, layer
| name | description | layer |
|---|---|---|
| wp-dev | Desenvolvimento WordPress especializado com Quality Gate 70+. Cria e modifica plugins seguindo WordPress Coding Standards, desenvolve temas child, integra WooCommerce e resolve problemas WordPress. | wiki |
WordPress Plugin Developer
Skill para desenvolvimento WordPress profissional seguindo padrões Descomplicar®.
Quando Usar
- Criar ou modificar plugins WordPress
- Desenvolver temas ou child themes
- Integrar funcionalidades WooCommerce
- Resolver problemas específicos WordPress
- Criar custom post types, taxonomias, widgets
Quando NÃO Usar
- Para operações CRM (usar /crm-ops)
- Para operações servidor/SSH genéricas (usar agente especializado)
- Para manutenção rotineira WP (usar /today às segundas)
Contexto NotebookLM
ANTES de executar, consultar notebooks para contexto especializado:
| Notebook | ID | Consultar quando |
|---|---|---|
| WordPress e Elementor | 5be0d1a6 | Sempre |
| WordPress Config CLI | fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d | Para WP-CLI e configuração |
mcp__notebooklm__notebook_query({
notebook_id: "5be0d1a6-00f2-4cd9-b835-978cb7721601",
query: "<adaptar ao contexto do pedido do utilizador>"
})
mcp__notebooklm__notebook_query({
notebook_id: "fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d",
query: "<adaptar ao contexto de WP-CLI e configuração WordPress>"
})
Integrar insights do NotebookLM nas recomendações e decisões.
Procedimentos Relacionados
PROC-WiP-Definicao.md— Definição de projectos WordPress in a PackagePROC-WiP-Instalacao.md— Instalação e configuração WiPPROC-WiP-Gestao.md— Gestão e manutenção WiP
Protocolo Obrigatório
1. Pesquisa Inicial (MCP)
Antes de desenvolver, SEMPRE executar:
mcp__mem_search_memories "[keywords wordpress]"
mcp__wikijs__search_pages "[plugin/funcionalidade]"
2. Quality Gate 70+
Todo código WordPress deve atingir score mínimo 70/100:
- WordPress Coding Standards (WPCS)
- Funções documentadas com PHPDoc
- Hooks e filters bem estruturados
- Sem warnings/notices PHP
- Segurança: nonces, sanitização, escaping
3. Assinatura Obrigatória
Todo ficheiro PHP deve incluir:
<?php
/**
* [Nome do Plugin/Ficheiro]
*
* @author Descomplicar® Crescimento Digital
* @link https://descomplicar.pt
* @copyright 2025 Descomplicar®
*/
Segurança WordPress (OBRIGATÓRIO)
- Sanitizar inputs:
sanitize_text_field(),sanitize_email(),absint() - Escapar outputs:
esc_html(),esc_attr(),esc_url() - Nonces para forms:
wp_nonce_field(),wp_verify_nonce() - AJAX nonces:
check_ajax_referer() - Capability checks:
current_user_can()antes de acções admin - Prepared statements:
$wpdb->prepare()para queries
Performance
- Enqueueing correcto:
wp_enqueue_script(),wp_enqueue_style() - Hooks no momento certo:
init,admin_init,wp_enqueue_scripts - Evitar queries em loops
- Usar transients para cache:
get_transient(),set_transient()
Estrutura Plugin Standard
plugin-name/
├── plugin-name.php # Ficheiro principal
├── includes/
│ ├── class-plugin-name.php
│ └── class-plugin-name-admin.php
├── assets/
│ ├── css/
│ └── js/
├── templates/
├── languages/
└── readme.txt
Template Plugin Principal
<?php
/**
* Plugin Name
*
* @package PluginName
* @author Descomplicar® Crescimento Digital
* @copyright 2025 Descomplicar®
* @license GPL-2.0-or-later
*
* @wordpress-plugin
* Plugin Name: Plugin Name
* Plugin URI: https://descomplicar.pt/plugin-name
* Description: Descrição do plugin.
* Version: 1.0.0
* Requires at least: 6.0
* Requires PHP: 8.0
* Author: Descomplicar®
* Author URI: https://descomplicar.pt
* Text Domain: plugin-name
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
defined('ABSPATH') || exit;
define('PLUGIN_NAME_VERSION', '1.0.0');
define('PLUGIN_NAME_PATH', plugin_dir_path(__FILE__));
define('PLUGIN_NAME_URL', plugin_dir_url(__FILE__));
// Autoloader ou includes
require_once PLUGIN_NAME_PATH . 'includes/class-plugin-name.php';
// Inicialização
function plugin_name_init() {
load_plugin_textdomain('plugin-name', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'plugin_name_init');
// Activação
register_activation_hook(__FILE__, 'plugin_name_activate');
function plugin_name_activate() {
// Criar tabelas, opções, etc.
}
// Desactivação
register_deactivation_hook(__FILE__, 'plugin_name_deactivate');
function plugin_name_deactivate() {
// Limpeza
}
Checklist Antes de Entregar
- Assinatura Descomplicar® em todos os ficheiros
- Segurança: nonces, sanitização, escaping
- WordPress Coding Standards
- Sem erros PHP (php -l)
- Textdomain para traduções
- Uninstall hook para limpeza