Files
claude-plugins/wordpress/skills/jetengine/SKILL.md
T

5.1 KiB

name, description, layer
name description layer
jetengine Desenvolvimento com JetEngine (Crocoblock). Cobre CPT, CCT, Meta Boxes, Taxonomias, Relations, Query Builder, Listing Grid/Map, Dynamic Content, Dynamic Tags, Macros, Profile Builder, REST API e automação headless. wiki

/jetengine — JetEngine Development

JetEngine é o núcleo do ecossistema Crocoblock: cria CPT, CCT, Meta Boxes, Relations, Queries e Listings com conteúdo dinâmico para Elementor.

CPT vs CCT — Escolha Crítica

Custom Post Type (CPT) Custom Content Type (CCT)
Storage wp_posts + wp_postmeta Tabela SQL própria wp_jet_cct_{slug}
Performance Lenta em queries complexas Muito rápida (colunas reais)
Compatibilidade Total WP ecosystem Limitada (sem taxonomies nativas)
REST API /wp-json/wp/v2/{slug} /wp-json/jet-cct/{slug}
Automação wp_insert_post() CCT_Data_Handler ou SQL directo
Usar quando Conteúdo editorial, SEO, plugins WP Alta performance, CRUD automatizado, dashboards

Regra prática: CPT para conteúdo público/SEO; CCT para dados internos, integrações e alta escala.

Criar CPT

JetEngine > Post Types > Add New
├── Slug (único, sem espaços, lowercase)
├── Labels (Singular / Plural)
├── Suporte: title, editor, thumbnail, excerpt, custom-fields
├── REST API: Activar para integração externa
├── Archive: Activar se precisar de página de listagem
└── Admin Columns: Mostrar meta fields na tabela admin

Meta Boxes e Campos

Tipos de Campos

Tipo Uso
text Texto simples
textarea Texto longo
wysiwyg Editor rich text
number Valor numérico
select Dropdown de opções
checkbox Verdadeiro/falso
checkbox-list Múltipla selecção
radio Opção única
date Data (timestamp)
media Upload de ficheiro/imagem
gallery Múltiplas imagens
repeater Campo repetível (sub-campos)
posts Relação simples (seleccionar posts)
color-picker Cor HEX
map Coordenadas geográficas
html HTML estático (apenas display)

Repeater — Estrutura

Repeater Field "galeria_servicos":
  ├── sub-campo: imagem (media)
  ├── sub-campo: titulo (text)
  └── sub-campo: descricao (textarea)

Aceder em PHP:
$items = get_post_meta($post_id, 'galeria_servicos', true);
foreach ($items as $item) { ... }

Relations

Tipos de Relação

Tipo Exemplo
One-to-Many 1 Empresa → N Colaboradores
Many-to-Many N Projectos ↔ N Tags custom
Self-relation Artigo relacionado com outros artigos
User-to-Post Utilizador → N Reservas

Tabela SQL das Relações

-- wp_jet_rel_default
-- parent_object_id | child_object_id | rel_id (hash da relação)

-- Ler todos os filhos de um pai
SELECT child_object_id
FROM wp_jet_rel_default
WHERE parent_object_id = 123
AND rel_id = 'relacao_empresa_colaboradores';

-- Ler o pai a partir de um filho
SELECT parent_object_id
FROM wp_jet_rel_default
WHERE child_object_id = 456
AND rel_id = 'relacao_empresa_colaboradores';

Importante: Nunca editar esta tabela directamente via SQL para criar relações — usar a API PHP do JetEngine (ver references/automation.md).

Query Builder

Substitui o WP_Query com interface visual. Ligar ao Listing Grid.

Tipos de Query

Tipo Usa
Posts CPT, posts, páginas
Terms Taxonomias
Users Utilizadores WP
Custom Content Type Tabelas CCT
REST API Endpoint externo

Configurar Query Posts

JetEngine > Query Builder > Add New
├── Query Type: Posts
├── Post Type: [seleccionar CPT]
├── Order By: date / meta_value / rand / menu_order
├── Meta Query: adicionar condições de meta fields
├── Tax Query: filtrar por taxonomia
└── Author: específico ou current user

Usar no Listing Grid

Elemento Elementor: Listing Grid
├── Listing Item: [seleccionar Listing Template]
├── Use Custom Query: YES → seleccionar Query criado acima
├── Items per page: N
└── Pagination: Activar se necessário

Listing Grid e Listing Template

Criar Listing Template

JetEngine > Listings > Add New
├── Template Type: Default / Popup
├── Content From: Posts / CCT / User / Term
└── Editar com Elementor → usar Dynamic Tags

Dynamic Tags no Listing Template

Post Title         → {{ post_title }}
Field de Meta      → Meta Field → seleccionar nome do campo
Imagem             → Featured Image → meta field media
Link               → Post URL / Custom Field URL
Relação            → Relation Field

Listing Map

JetEngine > Listings > Add New > Template Type: Map
├── Configurar campo de coordenadas (tipo: map no meta box)
├── Google Maps API Key: WP Admin > JetEngine > Settings
└── Ligar ao Query Builder

Dynamic Content e Macros

Macros Comuns

%current_user_id%          # ID do utilizador logado
%current_post_id%