PluginBench
Skill
Review
Audit score 70

wordpress-elementor

jezweb/claude-skills

Edit Elementor pages and manage templates on WordPress sites via browser automation or WP-CLI.

What is wordpress-elementor?

Modify content, structure, and templates on WordPress sites built with Elementor. Use this skill when you need to update text in widgets, change images, apply templates, or make visual/structural edits to Elementor pages. Supports both safe WP-CLI text replacements and browser-based visual editing.

  • Update text content in Elementor widgets via WP-CLI search-replace (low-risk)
  • Edit page structure, styling, and layout using browser automation in the visual editor
  • Manage and apply Elementor templates to pages
  • Duplicate pages and copy Elementor data between pages
  • Change images, buttons, headings, and other widget content
  • Flush CSS cache after updates to ensure changes appear live

How to install wordpress-elementor

npx skills add https://github.com/jezweb/claude-skills --skill wordpress-elementor
Prerequisites
  • Working WP-CLI connection or WordPress admin access (use wordpress-setup skill first)
  • Elementor plugin installed and active on the WordPress site
Claude Code
Cursor
Windsurf
Cline

How to use wordpress-elementor

  1. 1.List Elementor pages using WP-CLI to identify the page ID you want to edit
  2. 2.Choose your editing method: WP-CLI for text/URL updates (faster, lower risk) or browser automation for structural/visual changes
  3. 3.For text updates: back up the page's _elementor_data, run a dry-run search-replace, verify results, execute, then flush CSS cache
  4. 4.For visual edits: navigate to the Elementor editor URL in a browser, click elements to select them, edit content in the left sidebar, and click Update
  5. 5.For template management: list saved templates, export/import via the WordPress admin, or apply templates to pages through the visual editor
  6. 6.Verify changes by checking page status and taking a screenshot of the live page

Use cases

Good for
  • Update heading text or paragraph content on an Elementor page without touching HTML structure
  • Change button labels, links, or image URLs using safe WP-CLI replacements
  • Apply a saved Elementor template to a new page via the visual editor
  • Duplicate an existing Elementor page with all its content and styling
  • Make layout or styling changes to sections, columns, and widgets visually
Who it's for
  • WordPress site editors and content managers
  • Developers maintaining Elementor-built sites
  • Users needing to update page content without coding knowledge
  • Teams managing multiple pages with shared templates

wordpress-elementor FAQ

When should I use WP-CLI vs. browser automation?

Use WP-CLI for text content, URLs, and simple replacements within existing widgets—it's faster and safer. Use browser automation for anything structural: adding/removing sections, changing layouts, applying templates, or adjusting styling.

Do I need to back up before making changes?

Yes, always back up the page's _elementor_data postmeta before using WP-CLI search-replace. Use: wp @site post meta get {post_id} _elementor_data > backup.json

Why don't my changes appear after a WP-CLI update?

Elementor caches CSS. After any WP-CLI change, flush the cache with: wp @site elementor flush-css (or wp @site option delete _elementor_global_css if the elementor command isn't available).

Can I edit global widgets?

Yes, but changes affect all pages using that global widget. Edit them the same way as regular widgets—via browser or WP-CLI—but be aware the change is site-wide.

How do I duplicate a page with all its Elementor content?

Use WP-CLI to create a new page, then copy the _elementor_data and _elementor_page_settings postmeta from the source page to the new one. The skill includes a complete command sequence for this.

Full instructions (SKILL.md)

Source of truth, from jezweb/claude-skills.


name: wordpress-elementor description: "Edit Elementor pages and manage templates on WordPress sites via browser automation (for visual / structural changes) or WP-CLI (for safe text replacements). Use whenever the user wants to edit an Elementor page, update text in Elementor widgets, apply or manage Elementor templates, or make content changes to pages built with the Elementor page builder." compatibility: claude-code-only

WordPress Elementor

Edit Elementor pages and manage templates on existing WordPress sites. Produces updated page content via browser automation (for visual/structural changes) or WP-CLI (for safe text replacements).

Prerequisites

  • Working WP-CLI connection or admin access (use wordpress-setup skill)
  • Elementor installed and active: wp @site plugin status elementor

Workflow

Step 1: Identify the Page

# List Elementor pages
wp @site post list --post_type=page --meta_key=_elementor_edit_mode --meta_value=builder \
  --fields=ID,post_title,post_name,post_status

# Editor URL format: https://example.com/wp-admin/post.php?post={ID}&action=elementor

Step 2: Choose Editing Method

Change TypeMethodRisk
Text content updatesWP-CLI search-replaceLow (with backup)
Image URL swapsWP-CLI meta updateLow (with backup)
Widget stylingBrowser automationNone
Add/remove sectionsBrowser automationNone
Layout changesBrowser automationNone
Template applicationBrowser automationNone

Rule of thumb: If you're only changing text or URLs within existing widgets, WP-CLI is faster. For anything structural, use the visual editor via browser.

Step 3a: Text Updates via WP-CLI

Always back up first:

wp @site post meta get {post_id} _elementor_data > /tmp/elementor-backup-{post_id}.json

Pre-flight checklist:

  1. Back up the postmeta (above)
  2. Dry run the replacement
  3. Verify the dry run matches expectations (correct number of replacements)
  4. Execute
  5. Flush CSS cache
  6. Verify visually

Simple text replacement:

# Dry run
wp @site search-replace "Old Heading Text" "New Heading Text" wp_postmeta \
  --include-columns=meta_value --dry-run --precise

# Execute (after confirming dry run looks correct)
wp @site search-replace "Old Heading Text" "New Heading Text" wp_postmeta \
  --include-columns=meta_value --precise

After updating, clear Elementor's CSS cache:

wp @site elementor flush-css

If the elementor WP-CLI command isn't available:

wp @site option delete _elementor_global_css
wp @site post meta delete-all _elementor_css

What's safe to replace:

SafeRisky
Headings textHTML structure
Paragraph textWidget IDs
Button text and URLsSection/column settings
Image URLs (same dimensions)Layout properties
Phone numbers, emailsCSS classes
AddressesElement ordering

Step 3b: Visual Editing via Browser Automation

For structural changes, use browser automation to interact with Elementor's visual editor.

Login flow (skip if already logged in via Chrome MCP):

  1. Navigate to https://example.com/wp-admin/
  2. Enter username and password
  3. Click "Log In"
  4. Wait for dashboard to load

Open the editor:

  1. Navigate to https://example.com/wp-admin/post.php?post={ID}&action=elementor
  2. Wait for Elementor loading overlay to disappear (can take 5-10 seconds)
  3. Editor is ready when the left sidebar shows widget panels

Edit text content:

  1. Click on the text element in the page preview (right panel)
  2. The element becomes selected (blue border)
  3. The left sidebar shows the element's settings
  4. Under "Content" tab, edit the text in the editor field
  5. Changes appear live in the preview
  6. Click "Update" (green button, bottom left) or Ctrl+S

Edit heading:

  1. Click the heading in the preview
  2. Left sidebar > Content tab > "Title" field
  3. Edit the text
  4. Optionally adjust: HTML tag (H1-H6), alignment, link
  5. Save

Change image:

  1. Click the image widget in the preview
  2. Left sidebar > Content tab > click the image thumbnail
  3. Media Library opens
  4. Select new image or upload
  5. Click "Insert Media"
  6. Save

Edit button:

  1. Click the button in the preview
  2. Left sidebar > Content tab: Text (label), Link (URL), Icon (optional)
  3. Style tab: colours, typography, border, padding
  4. Save

Using playwright-cli:

playwright-cli -s=wp-editor open "https://example.com/wp-admin/"
# Login first, then navigate to Elementor editor
playwright-cli -s=wp-editor navigate "https://example.com/wp-admin/post.php?post={ID}&action=elementor"

Or Chrome MCP if using the user's logged-in session.

Step 4: Manage Templates

List saved templates:

wp @site post list --post_type=elementor_library --fields=ID,post_title,post_status

Export a template (browser):

  1. Navigate to: https://example.com/wp-admin/edit.php?post_type=elementor_library
  2. Hover over the template > "Export Template"
  3. Downloads as .json file

Import a template (browser):

  1. Navigate to: https://example.com/wp-admin/edit.php?post_type=elementor_library
  2. Click "Import Templates" at the top
  3. Choose file > upload .json
  4. Template appears in the library

Apply a template to a new page:

  1. Create the page: wp @site post create --post_type=page --post_title="New Page" --post_status=draft
  2. Open in Elementor via browser
  3. Click the folder icon (Add Template)
  4. Select from "My Templates" tab
  5. Click "Insert"
  6. Customise and save

Duplicate an existing page via WP-CLI:

# Get source page's Elementor data
SOURCE_DATA=$(wp @site post meta get {source_id} _elementor_data)
SOURCE_CSS=$(wp @site post meta get {source_id} _elementor_page_settings)

# Create new page
NEW_ID=$(wp @site post create --post_type=page --post_title="Duplicated Page" --post_status=draft --porcelain)

# Copy Elementor data
wp @site post meta update $NEW_ID _elementor_data "$SOURCE_DATA"
wp @site post meta update $NEW_ID _elementor_edit_mode "builder"
wp @site post meta update $NEW_ID _elementor_page_settings "$SOURCE_CSS"

# Regenerate CSS
wp @site elementor flush-css

Apply template between pages via WP-CLI:

# Get source data
SOURCE=$(wp @site post meta get {source_id} _elementor_data)
SETTINGS=$(wp @site post meta get {source_id} _elementor_page_settings)

# Apply to target
wp @site post meta update {target_id} _elementor_data "$SOURCE"
wp @site post meta update {target_id} _elementor_edit_mode "builder"
wp @site post meta update {target_id} _elementor_page_settings "$SETTINGS"

# Clear cache
wp @site elementor flush-css

Step 5: Verify

# Check the page status
wp @site post get {post_id} --fields=ID,post_title,post_status,guid

# Get live URL
wp @site post get {post_id} --field=guid

Take a screenshot to confirm visual changes:

playwright-cli -s=verify open "https://example.com/{page-slug}/"
playwright-cli -s=verify screenshot --filename=page-verify.png
playwright-cli -s=verify close

Critical Patterns

Elementor Data Format

Elementor stores page content as JSON in _elementor_data postmeta. The structure is:

Section > Column > Widget

Each element has an id, elType, widgetType, and settings object. Direct manipulation of this JSON is possible but fragile -- always back up first and prefer search-replace over manual JSON editing.

CSS Cache

After any WP-CLI change to Elementor data, you must flush the CSS cache. Elementor pre-generates CSS from widget settings. Stale cache = visual changes don't appear.

wp @site elementor flush-css
# OR if elementor CLI not available:
wp @site option delete _elementor_global_css
wp @site post meta delete-all _elementor_css

Global Widgets

Global widgets are shared across pages. Editing one updates all instances.

# List global widgets
wp @site post list --post_type=elementor_library --meta_key=_elementor_template_type \
  --meta_value=widget --fields=ID,post_title

Caution: Replacing text in a global widget's data affects every page that uses it.

Elementor Pro vs Free

FeatureFreePro
Basic widgetsYesYes
Theme BuilderNoYes
Custom fontsNoYes
Form widgetNoYes
WooCommerce widgetsNoYes
Dynamic contentNoYes

Theme Builder templates (header, footer, archive) are stored as elementor_library post type with specific meta indicating their display conditions.

Common Elementor WP-CLI Commands

If the Elementor CLI extension is available:

wp @site elementor flush-css          # Clear CSS cache
wp @site elementor library sync       # Sync with template library
wp @site elementor update db          # Update database after version change

Related skills

More from jezweb/claude-skills and the wider catalog.

WOwordpress-setup logo

wordpress-setup

jezweb/claude-skills

Connect to a WordPress site via WP-CLI over SSH or the REST API. Check CLI, test SSH, set up auth, verify access, save config. Use whenever the user wants to connect to a WordPress site, set up WP-CLI access, create an Application Password, or troubleshoot WordPress connection / auth issues.

1.1k installs
ZUzustand-state-management logo

zustand-state-management

jezweb/claude-skills

|

1.3k installs
AIai-image-generator logo

ai-image-generator

jezweb/claude-skills

Generate AI images using Gemini or GPT APIs directly. Covers model selection (Gemini for scenes; GPT Image 2 for text rendering, batch variations, multi-reference compositing; GPT Image 1.5 for transparent icons), the 5-part prompting framework, API calling patterns, multi-turn editing, and quality assurance. Produces photorealistic scenes, icons, illustrations, OG images, posters, infographics, and product shots. Use when building websites that need images, creating marketing assets, or generating visual content. Triggers: 'generate image', 'ai image', 'create hero image', 'make an icon', 'generate illustration', 'create og image', 'poster', 'infographic', 'image variations', 'gpt-image-2', 'ai art', 'image generation'.

999 installs
APapp-docs logo

app-docs

jezweb/claude-skills

Generate complete user documentation for a web app with screenshots. Browses the app via browser automation, screenshots every screen, and produces a structured user guide with step-by-step instructions, annotated screenshots, workflow diagrams, and reference tables. Supports quick (key screens), standard (all pages), thorough (every state and flow), and exhaustive (publishable documentation suite). Triggers: 'document the app', 'user guide', 'app documentation', 'screenshot docs', 'generate user docs', 'help docs', 'how-to guide', 'write the docs'.

737 installs
DRdrawio logo

drawio

jgraph/drawio-mcp

Generate editable draw.io diagrams as .drawio files, with optional export to PNG/SVG/PDF or browser URL.

2.0k installs
PYpython-backend logo

python-backend

jiatastic/open-python-skills

Production-ready Python backend patterns for FastAPI, SQLAlchemy, and Upstash integrations.

1.8k installs