feat(wordpress): adiciona plugin wordpress (agents, skills, knowledge e metadados do projeto)
This commit is contained in:
@@ -0,0 +1,231 @@
|
||||
---
|
||||
name: elementor
|
||||
description: Desenvolvimento avançado com Elementor Pro e ecossistema Crocoblock. Cria widgets custom, configura Theme Builder, automatiza deploys, manipula _elementor_data via MySQL, REST API, Dynamic Tags e cache CSS.
|
||||
layer: wiki
|
||||
---
|
||||
|
||||
# /elementor - Elementor Development
|
||||
|
||||
Desenvolvimento avançado com Elementor Pro e Crocoblock.
|
||||
|
||||
## Quando Usar
|
||||
|
||||
- Criar widgets Elementor customizados
|
||||
- Configurar Theme Builder
|
||||
- Desenvolver com Crocoblock (JetEngine, JetWooBuilder)
|
||||
- Optimizar performance Elementor
|
||||
- Troubleshooting Elementor
|
||||
|
||||
## Contexto NotebookLM
|
||||
|
||||
ANTES de executar, consultar notebooks para contexto especializado:
|
||||
|
||||
| Notebook | ID | Consultar quando |
|
||||
|----------|-----|-----------------|
|
||||
| WordPress e Elementor | 5be0d1a6 | Sempre |
|
||||
|
||||
```
|
||||
mcp__notebooklm__notebook_query({
|
||||
notebook_id: "5be0d1a6-00f2-4cd9-b835-978cb7721601",
|
||||
query: "<adaptar ao contexto do pedido do utilizador>"
|
||||
})
|
||||
```
|
||||
|
||||
Integrar insights do NotebookLM nas recomendações e decisões.
|
||||
|
||||
---
|
||||
|
||||
## Estrutura Custom Widget
|
||||
|
||||
```php
|
||||
<?php
|
||||
/**
|
||||
* Custom Elementor Widget
|
||||
*
|
||||
* @author Descomplicar® Crescimento Digital
|
||||
* @link https://descomplicar.pt
|
||||
* @copyright 2026 Descomplicar®
|
||||
*/
|
||||
|
||||
class Custom_Widget extends \Elementor\Widget_Base {
|
||||
|
||||
public function get_name() {
|
||||
return 'custom-widget';
|
||||
}
|
||||
|
||||
public function get_title() {
|
||||
return 'Custom Widget';
|
||||
}
|
||||
|
||||
public function get_icon() {
|
||||
return 'eicon-code';
|
||||
}
|
||||
|
||||
public function get_categories() {
|
||||
return ['general'];
|
||||
}
|
||||
|
||||
protected function register_controls() {
|
||||
$this->start_controls_section(
|
||||
'content_section',
|
||||
[
|
||||
'label' => 'Content',
|
||||
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
|
||||
]
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'title',
|
||||
[
|
||||
'label' => 'Title',
|
||||
'type' => \Elementor\Controls_Manager::TEXT,
|
||||
'default' => 'Title',
|
||||
]
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
|
||||
// Style controls
|
||||
$this->start_controls_section(
|
||||
'style_section',
|
||||
[
|
||||
'label' => 'Style',
|
||||
'tab' => \Elementor\Controls_Manager::TAB_STYLE,
|
||||
]
|
||||
);
|
||||
|
||||
$this->add_control(
|
||||
'title_color',
|
||||
[
|
||||
'label' => 'Color',
|
||||
'type' => \Elementor\Controls_Manager::COLOR,
|
||||
'selectors' => [
|
||||
'{{WRAPPER}} .title' => 'color: {{VALUE}}',
|
||||
],
|
||||
]
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
}
|
||||
|
||||
protected function render() {
|
||||
$settings = $this->get_settings_for_display();
|
||||
?>
|
||||
<div class="custom-widget">
|
||||
<h2 class="title"><?php echo esc_html($settings['title']); ?></h2>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Registar Widget
|
||||
|
||||
```php
|
||||
// functions.php ou plugin
|
||||
add_action('elementor/widgets/register', function($widgets_manager) {
|
||||
require_once(__DIR__ . '/widgets/custom-widget.php');
|
||||
$widgets_manager->register(new \Custom_Widget());
|
||||
});
|
||||
```
|
||||
|
||||
## Theme Builder
|
||||
|
||||
### Header
|
||||
|
||||
```
|
||||
Site Logo | Navigation Menu | Search | Cart Icon
|
||||
Sticky: Yes | Transparent: Optional
|
||||
```
|
||||
|
||||
### Footer
|
||||
|
||||
```
|
||||
4 Columns: About | Links | Contact | Social
|
||||
Copyright row
|
||||
```
|
||||
|
||||
### Single Post
|
||||
|
||||
```
|
||||
Featured Image
|
||||
Title + Meta (Author, Date, Categories)
|
||||
Content
|
||||
Author Box
|
||||
Related Posts
|
||||
```
|
||||
|
||||
### Archive
|
||||
|
||||
```
|
||||
Title
|
||||
Filters (JetSmartFilters)
|
||||
Post Grid/List (JetEngine)
|
||||
Pagination
|
||||
```
|
||||
|
||||
## Crocoblock Plugins
|
||||
|
||||
| Plugin | Uso Principal |
|
||||
|--------|---------------|
|
||||
| **JetEngine** | CPT, Meta Fields, Dynamic Content, Listings |
|
||||
| **JetElements** | Widgets adicionais (Timeline, Progress Bar) |
|
||||
| **JetSmartFilters** | Filtros AJAX para listings |
|
||||
| **JetWooBuilder** | Templates WooCommerce avançados |
|
||||
| **JetPopup** | Popups com triggers avançados |
|
||||
| **JetTabs** | Tabs, Accordions, Toggle |
|
||||
| **JetFormBuilder** | Forms com lógica condicional |
|
||||
|
||||
## JetEngine - Custom Post Type
|
||||
|
||||
```php
|
||||
// Via código (alternativa ao JetEngine UI)
|
||||
add_action('init', function() {
|
||||
register_post_type('portfolio', [
|
||||
'labels' => [
|
||||
'name' => 'Portfolio',
|
||||
'singular_name' => 'Project'
|
||||
],
|
||||
'public' => true,
|
||||
'has_archive' => true,
|
||||
'supports' => ['title', 'editor', 'thumbnail'],
|
||||
'show_in_rest' => true,
|
||||
]);
|
||||
});
|
||||
|
||||
// Meta boxes via JetEngine UI recomendado
|
||||
```
|
||||
|
||||
## Performance Tips
|
||||
|
||||
### 1. Lazy Load
|
||||
|
||||
```php
|
||||
// Activar lazy load para imagens
|
||||
add_filter('wp_lazy_loading_enabled', '__return_true');
|
||||
```
|
||||
|
||||
### 2. Desactivar Google Fonts (se usar fonts locais)
|
||||
|
||||
```php
|
||||
add_filter('elementor/frontend/print_google_fonts', '__return_false');
|
||||
```
|
||||
|
||||
### 3. Limitar revisões
|
||||
|
||||
```php
|
||||
// wp-config.php
|
||||
define('WP_POST_REVISIONS', 3);
|
||||
```
|
||||
|
||||
### 4. Usar Flexbox Container
|
||||
|
||||
```
|
||||
Preferir: Flexbox Container (moderno)
|
||||
Evitar: Section > Column (legacy, mais pesado)
|
||||
```
|
||||
|
||||
### 5. Minimizar Widgets
|
||||
|
||||
```
|
||||
Regra: M
|
||||
Reference in New Issue
Block a user