Master Addons
  • Widgets
    • Changelogs
      Source Code NEW PRO
      Caldera Forms
      Logo Slider
      Table of Contents
      Gravity Forms
      Transforms PRO
      Restrict Content PRO
      Pricing Table
      Ninja Form
      Mailchimp
      Tooltip
      Popup Trigger NEW PRO
      Which Element NEW
      Creative Button
      Creative Links NEW
      Domain Search HOT PRO
      Dual Heading HOT
      Flipbox
      Animated Gradient BG HOT PRO
      Image Hotspot PRO
      Infobox
      News Ticker PRO
      Particles
      Progress Bar
      Off-Canvas Content NEW PRO
      Reading Progress Bar HOT
      Custom JS
      Blockquote
      Counter Up
      Image Hover Effects
      Reveal NEW PRO
      Rellax PRO
      Positioning
      Image Comparison
      Tabs
      Toggle Content HOT PRO
      Post/Page Duplicator FREE
      Floating Effects PRO
      Mega Menu HOT
      Custom CSS HOT
      Gradient Headline
      Advanced Image
      Nav Menu
      Tooltips
      Comparison Table PRO
      Glassmorphism
      Featured Product PRO
      Image Carouse
      Gallery Slider NEW PRO
      Dynamic Tags NEW
      Countdown Timer
      Current Time
      Patterns
      Wrapper Link
      Timeline
      Team Member
      Contact Form 7
      Advanced Accordion
      Animated Headlines
      Blog
      Business Hours
      Call To Action
      Progress Bars
      Background Slider
      Team Slider
      Dynamic Table
      Grid Line PRO
      WP Forms
      Search
      We Form
      Entrance Animation NEW PRO
      Display Conditions PRO
      Filterable Image Gallery
      WP Forms
      Custom Breakpoints NEW
  • Features
    • Theme Builder

      Design site-wide templates for a consistent look across every page of your website.

      Popup Builder

      Create engaging popups, modals, and announcement bars - to capture leads.

      Widget Builder

      Expand Elementor with advanced custom widgets to build more dynamic layouts.

      Mega Menu Builder

      Create multi-column menus with icons and images for superior navigation.

      Custom Css

      Apply your own CSS for pixel-perfect styling beyond default design options.

      Dynamic Tags

      Insert dynamic content like post titles and custom fields directly into designs.

      Display Conditions

      Control element visibility based on user role, device, time, and other rules.

      Icons Library

      Choose from thousands of built-in icons to enhance visuals and consistency.

      Animation

      Add scroll, hover, entrance, and much more animations to bring designs to life.
  • Template Kits
    • Template Kits

      Professionally designed full-page template Kit. Import and customize in seconds.

      Ready Sections

      Pre-built content sections and rows. Drag, drop, and customize instantly.

      Ready Popups

      Different types of High-converting popup designs. Import and launch quickly.

      Ready Pages

      Complete page layouts for any purpose. Start editing immediately.

      Ready Header

      Multiple modern header designs. Import and adapt to your brand.

      Ready Footer

      Fully designed footers for different websites. Add functionality and style in clicks.
  • Brands
    • WP Adminify

      WP Adminify

      Take control of your WordPress dashboard. Customize the admin experience.
      Admin Bar Editor

      Admin Bar Editor

      Customize the WordPress admin bar for a cleaner, more personalized workspace.
      Loginfy

      Loginfy

      Customize your WordPress login page with branding, styles, and security enhancements.

      Rolemaster Suite

      Manage user roles and permissions with precision for better security and workflow.
      Master Blocks

      Master Blocks

      Expand the Gutenberg editor with advanced custom blocks for more creative layouts.
      WP Spotlight

      WP Spotlight

      Instantly search and access admin features, posts, and settings from anywhere.
  • Themes
  • Help
    • Get Support
    • Documentation
    • Facebook Community
    • Changelogs
  • Blog
Pricing
🇺🇸EN
  • 🇺🇸EN
  • 🇸🇦AR
  • 🇧🇩BN
  • 🇩🇰DA
  • 🇩🇪DE
  • 🇪🇸ES
  • 🇫🇷FR
  • 🇮🇳HI
  • 🇰🇷KO
  • 🇵🇹PT
  • 🇷🇺RU
  • 🇨🇳ZH

Getting Started

  • Can’t see the Master Addon Element inside Elementor Page editor?
  • How To Apply For an Affiliate Account?
  • Active Pro version
  • Installing Plugin

Addons

  • Popup Trigger
  • Off-Canvas Content
  • Logo Slider
  • Progress Bars
  • Image Carousel
  • Featured Product
  • Comparison Table
  • Source Code
  • Advanced Image
  • Gradient Headline
  • Gallery Slider
  • Toggle Content
  • Infobox
  • Timeline
  • Dynamic Table
  • Mailchimp
  • Blockquote
  • Changelogs
  • Countdown Timer
  • Current Time
  • Search
  • Filterable Image Gallery
  • Team Slider
  • Counter Up
  • Restrict Content
  • Table of Contents
  • Image Hotspot
  • Image Comparison
  • News Ticker
  • Image Hover Effects
  • Tabs
  • Pricing Table
  • Navigation Menu
  • Domain Search
  • Flipbox
  • Tooltip
  • Creative Links
  • Business Hours
  • Contact Form 7
  • Creative Button
  • Animated Headlines
  • Advanced Accordion
  • Call to Action
  • Progress Bar
  • Blog
  • Team Member
  • Dual Heading

Extensions

  • Mega Menu
  • Which Element
  • Post Duplicator
  • Grid Line
  • Glassmorphism
  • Tooltip
  • Wrapper Link
  • Floating Effects
  • Dynamic Tags
  • Display Conditions
  • Entrance Animation
  • Custom Breakpoints
  • Animated Gradient Background
  • Reveal
  • Particles
  • Background Slider
  • Transforms
  • Rellax
  • Positioning
  • Custom CSS

Widget Builder

  • Conditions
  • Twig Syntax
  • Settings Panel Introduction
  • Divider
  • Text Shadow
  • Select2
  • Border
  • Heading
  • Tabs
  • Repeater
  • Visual Choice
  • Background
  • Dimensions
  • Box Shadow
  • Slider
  • Icons
  • Gallery
  • Media
  • Popover Toggle
  • URL Field
  • Date Time
  • Typography
  • Font
  • Color Field
  • Choose
  • Select
  • Switcher
  • Hidden
  • Code
  • WYSIWYG
  • Textarea Field
  • Number
  • Text Field

Theme Builder

  • Comment Form
  • 404
  • Search
  • Archive
  • Single
  • Footer
  • Header

Popup Builder

  • How to Open a Popup After Inactivity in Elementor
  • How to Show an Exit Intent Popup in Elementor
  • How to Open a Popup on Scroll to a Specific Element in Elementor
  • How to Open a Popup on Scroll in Elementor
  • How to Open a Popup on Click in Elementor
  • How to open a popup on page load?
  • Popup Settings & Options

Template Kit

  • How to Import Template Kits in Master Addons
  • How to Disable Elementor Default Fonts and Colors
  • Import Elementor Template Kits
View Categories
  • Home
  • Docs
  • Widget Builder
  • WYSIWYG

WYSIWYG

Roy Jemee
Updated on August 6, 2026

7 min read

The WYSIWYG field drops the full TinyMCE editor, the same rich-text editor WordPress has shipped for years, into a custom widget’s panel. Editors get bold, italics, lists, links, headings, and the visual/text tab switch they already know. Your widget receives formatted HTML ready to print. Inside the Master Addons Widget Builder, this is the field for content regions where a plain Textarea would flatten the formatting out of the text.

The WYSIWYG field supports Conditions like every other control, and its content renders through the Twig-syntax template engine. WYSIWYG values keep their safe HTML automatically, so you rarely need the |raw filter. Both guides explain the details and limitations.

The connection is one token. Print {{ your_field_name }} in the HTML panel and the stored markup renders there, filtered through wp_kses_post, so the formatting survives while unsafe tags are stripped. No extra filters, no escaping gymnastics.

What the WYSIWYG field does #

  • Renders the TinyMCE rich text editor in the widget’s Elementor panel, with the Visual and Text tabs.
  • Stores the editor’s output as an HTML string.
  • Prints that HTML through {{ your_field_name }}, passed through wp_kses_post on output.
  • Keeps formatting intact: paragraphs, bold, italics, lists, links, and headings all render.
  • Supports dynamic values, so the content can come from dynamic tags where the setup provides them.

First widget? The Widget Builder overview covers the editor basics this page builds on.

Before you start #

  • WordPress with Elementor installed and active.
  • Master Addons for Elementor installed and active. New to the plugin? See the installation guide.
  • A custom widget open in the Widget Builder editor. Our example is a team member card widget with a WYSIWYG field named member_bio holding each person’s formatted biography.

How to add a WYSIWYG field #

Drag the WYSIWYG field from the fields panel into a section under the Content tab, the natural home for long-form content. Its options open on the left once it lands.

WYSIWYG field options explained #

The option list stays small because the editor itself carries the complexity:

  • Label: the text shown above the editor in Elementor, for example “Member Bio”.
  • Name: the unique identifier your templates refer to. Letters, numbers, and underscores only, for example member_bio.
  • Default: the starting content, and it can include markup. A short formatted paragraph shows editors what the region is for and proves the formatting works.
  • Dynamic: the field accepts dynamic values, so content can be wired to dynamic tags instead of typed by hand.

Connect the WYSIWYG field with its token #

The WYSIWYG field is a token field. One token in the HTML panel places the whole content region:

<article class="tm-card">
  <h3 class="tm-name">{{ member_name }}</h3>
  <div class="tm-bio">
    {{ member_bio }}
  </div>
</article>

On output, the value passes through wp_kses_post, the filter WordPress applies to post content. The tags TinyMCE produces, paragraphs, strong and em, lists, links, headings, images, are all on the allowed list, so what editors format is what renders. Anything unsafe that sneaks in through the Text tab, like a <script>, is stripped.

Watch out: do not add |raw to a WYSIWYG token out of habit. The plain token already renders the formatting, because wp_kses_post allows the markup TinyMCE writes; |raw only removes the safety filter without changing what a normal bio looks like. If the output looks escaped rather than rendered, the cause is elsewhere, not a missing filter.

Wrap the token in a container with a class, as in the example, and style the region from the CSS panel:

.tm-bio p { margin: 0 0 0.75em; }
.tm-bio a { color: inherit; text-decoration: underline; }

Use the WYSIWYG control in Elementor #

Add your custom widget to a page in Elementor, or reload the editor if the page was already open. The field renders as a full TinyMCE editor in the panel: toolbar on top, Visual and Text tabs in the corner, Add Media where the setup allows it.

Editors write and format exactly as they would in a post: select text, bold it, add a link, start a list. The preview updates as they type, showing the content styled by the widget’s CSS.

When a bio renders oddly, check the Text tab before you blame the widget. Content pasted in from Word or Google Docs often carries stray spans and inline styles, and they are all visible there. Cleaning the markup in the Text tab usually fixes the layout on the spot.

Common use cases #

  • Bios and profiles in team, author, and speaker widgets.
  • Long descriptions in service, product, and feature cards where a heading or list belongs inside the text.
  • Testimonial bodies that need emphasis and line breaks preserved.
  • Footnotes and disclaimers with inline links to policies.
  • Any client-edited text region where formatting matters and the client should never see HTML.

Tips for working with the WYSIWYG field #

  • Print the plain token. {{ member_bio }} renders the formatting as-is; |raw adds risk without adding capability here.
  • Style through a wrapper class. Target .tm-bio p, .tm-bio ul, and friends in the CSS panel rather than hoping the editor output arrives pre-styled.
  • Set a formatted Default. A bio with a bold name and one link doubles as a live example of what the field supports.
  • One WYSIWYG per content region. Give the intro and the fine print separate fields instead of asking editors to manage both inside one editor.
  • Choose the lighter field when you can. A single unformatted line belongs in a Text field; reach for WYSIWYG when paragraphs, lists, or links are genuinely part of the content.
  • Expect kses on output. Custom tags outside the post-content allowed list will not survive, by design. Pasteable raw snippets are the Code field‘s job.

Frequently Asked Questions #

What is the WYSIWYG field in the Master Addons Widget Builder?

The WYSIWYG field adds the TinyMCE rich text editor to a custom Elementor widget’s panel. Editors format content visually, and the template prints the resulting HTML with {{ field_name }}, filtered through wp_kses_post so formatting renders and unsafe tags are removed.

Do I need the |raw filter to render the formatting?

No. The plain token already renders the markup, because wp_kses_post allows the tags TinyMCE produces. |raw only bypasses the sanitization filter and should stay out of WYSIWYG output in normal use.

Which HTML tags survive in the output?

The set WordPress allows in post content: paragraphs, headings, bold and italic, lists, links, images, blockquotes, and similar. Script tags and event-handler attributes are stripped on output.

How is WYSIWYG different from the Textarea field?

Textarea collects plain multi-line text with no toolbar and no stored markup. WYSIWYG stores formatted HTML from a visual editor. If the content needs bold text, lists, or links, WYSIWYG is the right field.

How do I style the content the editor produces?

Wrap the token in a container with a class in the HTML panel, then target descendants from the CSS panel, for example .tm-bio p and .tm-bio a. The editor supplies structure; the widget supplies the look.

Can the content come from a dynamic source?

The field supports dynamic values, so where dynamic tags are available the content region can pull from them instead of hand-typed text.

Wrapping up #

The Widget Builder WYSIWYG field gives editors the writing experience they already know and gives you a single sanitized token to place in the markup. Content people format bios and descriptions visually; the widget renders them safely and styles them through its own CSS. For pasteable raw snippets use the Code field, and for repeating formatted blocks combine WYSIWYG with the Repeater field. Explore the rest of the Master Addons widgets and extensions, and see the pricing page for what each plan includes.

What are your Feelings

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on August 6, 2026
CodeTextarea Field
Table of Contents
  • What the WYSIWYG field does
  • Before you start
  • How to add a WYSIWYG field
  • WYSIWYG field options explained
  • Connect the WYSIWYG field with its token
    • {{ member_name }}
  • Use the WYSIWYG control in Elementor
  • Common use cases
  • Tips for working with the WYSIWYG field
  • Frequently Asked Questions
    • What is the WYSIWYG field in the Master Addons Widget Builder?
    • Do I need the |raw filter to render the formatting?
    • Which HTML tags survive in the output?
    • How is WYSIWYG different from the Textarea field?
    • How do I style the content the editor produces?
    • Can the content come from a dynamic source?
  • Wrapping up

Join 30,000+ Web Creators Who Trust Master Addons

Get all the premium widgets and templates you desire, built with clean code that keeps your site fast. Ditch the bloat, not the features.

Try Live Demo
Join The Community
Master Addons for Elementor

80+ Premium Widgets & Lifetime Updates – Build Beyond Limits. An Exclusive Creation by Pixar Labs

Facebook-f Twitter Youtube Wordpress
Features
  • Template kits
  • Template Library
  • Widget Builder
  • Theme Builder
  • Mega Menu Builder
Support
  • Support Forum
  • Contact US
  • Join Community
  • Blog
  • Video Reviews
Resources
  • My Account
  • Changlogs
  • Documentation
  • Video Tutorials
  • Toolz.dev
Navigate
  • Apply for Affiliate
  • Terms of Use
  • Refund Policy
  • Privacy Policy
  • About Us