feat: sync all plugins, skills, agents updates
New plugins: core-tools New skills: auto-expense, ticket-triage, design, security-check, aiktop-tasks, daily-digest, imap-triage, index-update, mindmap, notebooklm, proc-creator, tasks-overview, validate-component, perfex-module, report, calendar-manager New agents: design-critic, design-generator, design-lead, design-prompt-architect, design-researcher, compliance-auditor, metabase-analyst, gitea-integration-specialist Updated: all plugin configs, knowledge datasets, existing skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
271
wordpress/skills/jetengine/references/dynamic-content.md
Normal file
271
wordpress/skills/jetengine/references/dynamic-content.md
Normal file
@@ -0,0 +1,271 @@
|
||||
# JetEngine — Dynamic Content, Macros e Profile Builder
|
||||
|
||||
## Dynamic Tags no Elementor
|
||||
|
||||
### Categorias de Dynamic Tags JetEngine
|
||||
|
||||
| Categoria | Tags Disponíveis |
|
||||
|-----------|-----------------|
|
||||
| **Post** | Post Title, Post URL, Post Date, Post Author, Featured Image, Post Terms |
|
||||
| **Meta** | Meta Field (qualquer campo JetEngine) |
|
||||
| **User** | User Name, User Email, User Role, User Meta |
|
||||
| **Relations** | Relation Field (conteúdo relacionado) |
|
||||
| **Options** | Option Field (JetEngine Global Options Pages) |
|
||||
| **Macros** | JetEngine Macros (ver secção abaixo) |
|
||||
| **Query** | Query Variable (parâmetros URL) |
|
||||
|
||||
### Usar Meta Field Tag
|
||||
|
||||
```
|
||||
Elemento Elementor > Campo de texto > ícone Dynamic Tags
|
||||
→ JetEngine > Meta Field
|
||||
→ Seleccionar meta key name
|
||||
→ Field Type: auto / text / image / url / ...
|
||||
|
||||
Para imagens (campo tipo media):
|
||||
→ Field Type: Image
|
||||
→ Image Size: thumbnail / medium / large / full
|
||||
|
||||
Para URLs em botões:
|
||||
→ Link > Dynamic Tag > Meta Field > Field Type: URL
|
||||
```
|
||||
|
||||
### Tags em CSS Custom (background, cores)
|
||||
|
||||
```
|
||||
Elemento > Style > Background > Dynamic Tag
|
||||
→ Meta Field → campo cor HEX
|
||||
→ Útil para cards coloridos por categoria
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Macros
|
||||
|
||||
### Macros Built-in
|
||||
|
||||
```
|
||||
%current_user_id% # ID do utilizador logado
|
||||
%current_user_name% # Nome do utilizador
|
||||
%current_user_email% # Email do utilizador
|
||||
%current_post_id% # ID do post actual
|
||||
%current_post_type% # Post type do post actual
|
||||
%queried_object_id% # ID em arquivo/single
|
||||
%queried_object_slug% # Slug em arquivo/single
|
||||
%request_field|param_name% # Parâmetro URL: ?param_name=valor
|
||||
%current_meta|field_name% # Meta field do post actual
|
||||
%user_meta|field_name% # Meta field do utilizador logado
|
||||
%current_taxonomy|tax_name% # Taxonomy do post actual
|
||||
%current_timestamp% # Unix timestamp actual
|
||||
%site_url% # URL do site
|
||||
```
|
||||
|
||||
### Usar Macros em Query Builder
|
||||
|
||||
```
|
||||
Exemplo: Listar imóveis favoritos do utilizador
|
||||
Meta Query:
|
||||
├── Field: favorito_de (campo que guarda array de IDs de utilizadores)
|
||||
├── Operator: LIKE
|
||||
└── Value: %current_user_id%
|
||||
|
||||
Exemplo: Listar items criados pelo utilizador
|
||||
Meta Query:
|
||||
├── Field: cct_author_id (campo automático do CCT)
|
||||
├── Operator: =
|
||||
└── Value: %current_user_id%
|
||||
```
|
||||
|
||||
### Macros em Textos
|
||||
|
||||
```
|
||||
Texto: "Bem-vindo, %current_user_name%!"
|
||||
→ Em runtime: "Bem-vindo, João Silva!"
|
||||
|
||||
Em Heading Widget: activar Dynamic Tag > JetEngine Macros
|
||||
→ Escrever a macro no campo Macro Value
|
||||
```
|
||||
|
||||
### Criar Macro Custom (PHP)
|
||||
|
||||
```php
|
||||
<?php
|
||||
// Registar macro custom
|
||||
add_filter('jet-engine/listings/macros-list', function($macros) {
|
||||
$macros[] = [
|
||||
'id' => 'minha_macro',
|
||||
'name' => 'Minha Macro Custom',
|
||||
'args' => [], // parâmetros opcionais
|
||||
];
|
||||
return $macros;
|
||||
});
|
||||
|
||||
add_filter('jet-engine/listings/macros-result', function($result, $macro, $args) {
|
||||
if ($macro === 'minha_macro') {
|
||||
// Lógica da macro
|
||||
$result = 'valor calculado';
|
||||
}
|
||||
return $result;
|
||||
}, 10, 3);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Conditional Fields (Campos Condicionais)
|
||||
|
||||
### Em Meta Boxes
|
||||
|
||||
```
|
||||
Campo B só aparece quando Campo A = "sim"
|
||||
|
||||
Meta Box > Campo B > Conditions:
|
||||
├── Field: nome_campo_a
|
||||
├── Operator: =
|
||||
└── Value: sim
|
||||
```
|
||||
|
||||
### Em Listing Templates (Visibility)
|
||||
|
||||
```
|
||||
Elemento Elementor > Advanced > JetEngine Conditions:
|
||||
├── Condition: Meta Field | Equals | "featured"
|
||||
└── Effect: Show / Hide
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Global Options Pages
|
||||
|
||||
Para configurações globais do site (telefone, email, horários, redes sociais).
|
||||
|
||||
### Criar Options Page
|
||||
|
||||
```
|
||||
JetEngine > Options Pages > Add New
|
||||
├── Page Title: Informações Globais
|
||||
├── Slug: informacoes-globais
|
||||
└── Campos: Meta Box associado
|
||||
```
|
||||
|
||||
### Usar em Elementor
|
||||
|
||||
```
|
||||
Dynamic Tag > JetEngine > Option
|
||||
→ Seleccionar Options Page
|
||||
→ Seleccionar campo
|
||||
|
||||
Exemplo: footer com telefone dinâmico
|
||||
→ Options Page: Informações Globais > campo: telefone
|
||||
→ Editar telefone em 1 lugar, actualiza em todo o site
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Profile Builder
|
||||
|
||||
Sistema de áreas de conta para utilizadores logados.
|
||||
|
||||
### Estrutura
|
||||
|
||||
```
|
||||
JetEngine > Profile Builder
|
||||
├── Pages (áreas da conta):
|
||||
│ ├── Dashboard (página principal)
|
||||
│ ├── Submissões (posts do utilizador)
|
||||
│ ├── Favoritos
|
||||
│ ├── Configurações (editar perfil)
|
||||
│ └── [custom pages]
|
||||
├── Access Rules:
|
||||
│ ├── Login Required: YES
|
||||
│ ├── User Roles: subscriber / author / ...
|
||||
│ └── Redirect não-logados: página de login
|
||||
└── Profile Menu Widget (Elementor)
|
||||
```
|
||||
|
||||
### Criar Página de Perfil
|
||||
|
||||
```
|
||||
1. JetEngine > Profile Builder > Add Page
|
||||
Nome: Dashboard | Slug: dashboard
|
||||
Template: Criar com Elementor
|
||||
|
||||
2. No Template, usar Dynamic Tags:
|
||||
→ User Name, User Email, User Avatar
|
||||
→ Query Builder filtrado por %current_user_id%
|
||||
|
||||
3. Adicionar Profile Menu Widget ao header/sidebar
|
||||
→ Mostra links para cada página do perfil
|
||||
→ Altera links consoante se está logado ou não
|
||||
```
|
||||
|
||||
### Submissão de Conteúdo por Utilizadores
|
||||
|
||||
```
|
||||
JetFormBuilder + Profile Builder:
|
||||
1. Criar formulário com acção "Create Post" (CPT)
|
||||
2. Acção: Set Author = Current User
|
||||
3. Colocar formulário na página de perfil
|
||||
4. Query Builder na página de listagem: autor = current_user_id
|
||||
```
|
||||
|
||||
### Editar Perfil com JetFormBuilder
|
||||
|
||||
```php
|
||||
// JetFormBuilder Form:
|
||||
// Acção: Update User
|
||||
// Campos mapeados:
|
||||
// ├── first_name → user first_name
|
||||
// ├── last_name → user last_name
|
||||
// ├── email → user email
|
||||
// └── bio_custom → user_meta: bio_custom
|
||||
|
||||
// Pre-fill automático: activar "Use data from:" → Current User
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Conditional Content por Utilizador
|
||||
|
||||
### Mostrar Conteúdo Só a Logados
|
||||
|
||||
```
|
||||
Elementor > Advanced > JetEngine Conditions:
|
||||
Condition: Is User Logged In | Equals | True
|
||||
Effect: Show (esconde elemento para não logados)
|
||||
```
|
||||
|
||||
### Por Role
|
||||
|
||||
```
|
||||
Condition: User Role | Contains | administrator
|
||||
Effect: Show (só admins vêem este bloco)
|
||||
```
|
||||
|
||||
### Por Meta do Utilizador
|
||||
|
||||
```
|
||||
Condition: User Meta | Field: plano_subscricao | Equals | premium
|
||||
Effect: Show (só utilizadores premium vêem este conteúdo)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Repeater em Frontend
|
||||
|
||||
### Listar Items de um Repeater
|
||||
|
||||
```
|
||||
Meta Box com campo Repeater "galeria_destaques":
|
||||
├── Sub-campo: imagem (media)
|
||||
├── Sub-campo: titulo (text)
|
||||
└── Sub-campo: link (url)
|
||||
|
||||
Em Listing Template:
|
||||
Adicionar widget "Dynamic Repeater"
|
||||
→ Source: Meta Field → galeria_destaques
|
||||
→ Criar template para cada item do repeater
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*JetEngine Dynamic Content | Descomplicar® | 18-02-2026*
|
||||
Reference in New Issue
Block a user