Files
claude-plugins/wordpress/skills/elementor/SKILL.md
Emanuel Almeida 6b3a6f2698 feat: refactor 30+ skills to Anthropic progressive disclosure pattern
- All SKILL.md files now <500 lines (avg reduction 69%)
- Detailed content extracted to references/ subdirectories
- Frontmatter standardised: only name + description (Anthropic standard)
- New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator
- Design skills: anti-slop guidelines, premium-proposals reference
- Removed non-standard frontmatter fields (triggers, version, author, category)

Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao,
core-tools, negocio, perfex-dev, wordpress, design-media

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:05:03 +00:00

7.2 KiB

name, description
name description
elementor 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.

/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
/**
 * 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

// 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
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

// 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

// Activar lazy load para imagens
add_filter('wp_lazy_loading_enabled', '__return_true');

2. Desactivar Google Fonts (se usar fonts locais)

add_filter('elementor/frontend/print_google_fonts', '__return_false');

3. Limitar revisões

// 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áximo 50 widgets por página
Usar: CSS custom em vez de widgets simples

Breakpoints

Desktop: > 1024px
Tablet: 768-1024px
Mobile: < 768px

Configuração:
Elementor > Settings > Advanced > Breakpoints

Troubleshooting

Widget não aparece / CSS desactualizado

# CWP — SEMPRE com prefixo PHP completo
PHP="/opt/alt/php-fpm83/usr/bin/php"
WP="$PHP /usr/local/bin/wp --allow-root --path=/home/USER/public_html"

# Regenerar CSS (após qualquer alteração programática)
$WP elementor flush-css --regenerate

# Substituição segura de URLs (NUNCA usar wp search-replace directamente)
$WP elementor replace-urls https://antigo.com https://novo.com

# Sincronizar BD após update do plugin
$WP elementor update db

Erro após update

# Rollback Elementor
Elementor > Tools > Version Control > Rollback

Performance lenta

1. Desactivar Google Fonts desnecessárias
2. Activar cache CSS minificado
3. Usar Flexbox Container
4. Lazy load imagens
5. Limitar widgets por página

Automação Programática (WP-CLI / MySQL / REST API)

Para deploy automatizado, pipelines IA, migração em massa e manipulação programática do Elementor sem GUI, consultar:

references/automation.md — Referência completa com:

  • Pipeline de deploy CWP (kit import + replace-urls + flush-css)
  • Estrutura _elementor_data JSON e queries MySQL com JSON_REPLACE
  • REST API custom endpoint (com wp_slash, cache invalidation)
  • PHP Dynamic Tags para conteúdo runtime (requer Pro)
  • Geração de Kit ZIP em Python
  • Rebranding global via elementor_active_kit
  • Regras críticas (NUNCA wp search-replace em _elementor_data)
  • MCP Elementor (Ultimate Elementor MCP, ~60 tools)

Datasets Dify

Dataset ID Prioridade
Elementor 9c77d3e2-4d88-4a43-abff-d4e681267cc7 1
Crocoblock bdf85c26-1824-4021-92d1-be20501b35ac 1
Crocooblock 139cdf67-afce-46ec-9ccd-2a06040e5b9d 1
Wordpress 9da0b2b9-5051-4b99-b9f6-20bf35067092 2

Referências Adicionais

  • references/automation.md — Automação programática completa (WP-CLI pipelines, MySQL, REST API, PHP Hooks, Kits, CSS)

Versão: 1.2.0 | Autor: Descomplicar® | Actualizado: 18-02-2026