
There isn’t any way to directly override the field type used for the default value in ACF, at least not that I can find.
You could add a new fields setting using https://www.advancedcustomfields.com/resources/adding-custom-settings-fields/. But I don’t know that the WYSIWYG field will actually function on the ACF field group page. You would probably need to load additional scripts in order to get it to work similar to the way extra scripts need to be added to get the image field to work described here https://acfextras.com/default-image-for-image-field/
If you can add the WYSIWYG field setting and if you can get it to work, you could then use an acf/prepare_field filter https://www.advancedcustomfields.com/resources/acfprepare_field/ to pull the value from the new setting field and put it into the standard ACF default_value for the field.
John I just wanted to thank you for all your help with this issue. I think I managed to fix it. Anyone else (unlikely but you never know) with this issue I had a mistake in my acf.php I had “min” and “max” as a child of the sub_fields array when they need to be siblings.
// so this - WRONG
...
"sub_fields" => array (
...
array (
'tabs' => 'all',
'toolbar' => 'full',
'media_upload' => 1,
'default_value' => '',
'delay' => 0,
'key' => 'field_5880eb5f6122e',
'label' => 'Text',
'name' => 'the_text',
'type' => 'wysiwyg',
'instructions' => '',
'required' => 0,
'conditional_logic' => 0,
'wrapper' => array (
'width' => '',
'class' => '',
'id' => '',
),
),
'min' => '',
'max' => '',
),
// to this - RIGHT
...
"sub_fields" => array (
...
array (
'tabs' => 'all',
'toolbar' => 'full',
'media_upload' => 1,
'default_value' => '',
'delay' => 0,
'key' => 'field_5880eb5f6122e',
'label' => 'Text',
'name' => 'the_text',
'type' => 'wysiwyg',
'instructions' => '',
'required' => 0,
'conditional_logic' => 0,
'wrapper' => array (
'width' => '',
'class' => '',
'id' => '',
),
),
),
'min' => '',
'max' => '',
VICTORY! Thanks again for all your help!
@john thanks for your help this is what I did and it still didn’t not work
include_once(‘/plugins/advanced-custom-fields/acf.php’);
define( ‘ACF_LITE’, true );
if( function_exists(‘register_field_group’) ):
add_action(‘init’, ‘register_field_group’);
function register_field_group() {
register_field_group(array (
‘id’ => ‘acf_about-us’,
‘title’ => ‘About Us’,
‘fields’ => array (
array (
‘key’ => ‘field_586e22820cdf9’,
‘label’ => ‘About Us’,
‘name’ => ‘about_us’,
‘type’ => ‘text’,
‘instructions’ => ‘Enter Title for about us here’,
‘required’ => 1,
‘default_value’ => ”,
‘placeholder’ => ‘Enter Title for about us here’,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘none’,
‘maxlength’ => ”,
),
array (
‘key’ => ‘field_586e22f80cdfa’,
‘label’ => ‘Establised At’,
‘name’ => ‘establised_at’,
‘type’ => ‘text’,
‘required’ => 1,
‘default_value’ => ”,
‘placeholder’ => ‘When where you established’,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘none’,
‘maxlength’ => ”,
),
),
‘location’ => array (
array (
array (
‘param’ => ‘page’,
‘operator’ => ‘==’,
‘value’ => ’15’,
‘order_no’ => 0,
‘group_no’ => 0,
),
),
),
‘options’ => array (
‘position’ => ‘normal’,
‘layout’ => ‘default’,
‘hide_on_screen’ => array (
),
),
‘menu_order’ => 0,
));
register_field_group(array (
‘id’ => ‘acf_food-menu’,
‘title’ => ‘Food Menu’,
‘fields’ => array (
array (
‘key’ => ‘field_58808cfded5b3’,
‘label’ => ‘Price’,
‘name’ => ‘price’,
‘type’ => ‘text’,
‘required’ => 1,
‘default_value’ => ”,
‘placeholder’ => ”,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘html’,
‘maxlength’ => ”,
),
array (
‘key’ => ‘field_5881f02f46739’,
‘label’ => ‘Currency’,
‘name’ => ‘currency’,
‘type’ => ‘select’,
‘required’ => 1,
‘choices’ => array (
‘$’ => ‘$’,
‘&euro’ => ‘€’,
),
‘default_value’ => ”,
‘allow_null’ => 0,
‘multiple’ => 0,
),
array (
‘key’ => ‘field_5880aceb6427c’,
‘label’ => ‘Food Category’,
‘name’ => ‘food_category’,
‘type’ => ‘checkbox’,
‘required’ => 1,
‘choices’ => array (
‘breakfast’ => ‘Breakfast’,
‘lunch’ => ‘Lunch’,
‘dinner’ => ‘Dinner’,
‘party’ => ‘Party’,
‘drinks’ => ‘Drinks’,
),
‘default_value’ => ‘breakfast : Breakfast’,
‘layout’ => ‘vertical’,
),
),
‘location’ => array (
array (
array (
‘param’ => ‘post_type’,
‘operator’ => ‘==’,
‘value’ => ‘foodmenu’,
‘order_no’ => 0,
‘group_no’ => 0,
),
),
),
‘options’ => array (
‘position’ => ‘normal’,
‘layout’ => ‘no_box’,
‘hide_on_screen’ => array (
),
),
‘menu_order’ => 0,
));
register_field_group(array (
‘id’ => ‘acf_footer-details’,
‘title’ => ‘Footer details’,
‘fields’ => array (
array (
‘key’ => ‘field_5878f731da3ad’,
‘label’ => ‘footer image’,
‘name’ => ‘footer_image’,
‘type’ => ‘image’,
‘instructions’ => ‘Footer Image Goes Here’,
‘save_format’ => ‘object’,
‘preview_size’ => ‘medium’,
‘library’ => ‘all’,
),
array (
‘key’ => ‘field_5878f756da3ae’,
‘label’ => ‘footer content’,
‘name’ => ‘footer_content’,
‘type’ => ‘text’,
‘instructions’ => ‘footer content goes here’,
‘default_value’ => ”,
‘placeholder’ => ”,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘none’,
‘maxlength’ => ”,
),
array (
‘key’ => ‘field_58794f98697fa’,
‘label’ => ‘Social Icons’,
‘name’ => ”,
‘type’ => ‘tab’,
),
array (
‘key’ => ‘field_58794d05697f8’,
‘label’ => ‘Facebook Username’,
‘name’ => ‘facebook_username’,
‘type’ => ‘text’,
‘instructions’ => ‘Enter Your Facebook Username Here’,
‘default_value’ => ”,
‘placeholder’ => ‘ajbeacon’,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘none’,
‘maxlength’ => ”,
),
array (
‘key’ => ‘field_58794c93697f7’,
‘label’ => ‘Twitter Username’,
‘name’ => ‘twitter_username’,
‘type’ => ‘text’,
‘instructions’ => ‘Enter Twitter Username Here’,
‘default_value’ => ”,
‘placeholder’ => ‘ajbeacon’,
‘prepend’ => ‘@’,
‘append’ => ”,
‘formatting’ => ‘none’,
‘maxlength’ => ”,
),
array (
‘key’ => ‘field_58794d65697f9’,
‘label’ => ‘Google Plus Username’,
‘name’ => ‘google_plus_username’,
‘type’ => ‘text’,
‘instructions’ => ‘Enter Your Google Plus Username Here’,
‘default_value’ => ”,
‘placeholder’ => ‘+ajbeacon’,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘none’,
‘maxlength’ => ”,
),
),
‘location’ => array (
array (
array (
‘param’ => ‘page’,
‘operator’ => ‘==’,
‘value’ => ’15’,
‘order_no’ => 0,
‘group_no’ => 0,
),
),
),
‘options’ => array (
‘position’ => ‘normal’,
‘layout’ => ‘default’,
‘hide_on_screen’ => array (
),
),
‘menu_order’ => 0,
));
register_field_group(array (
‘id’ => ‘acf_opening-time’,
‘title’ => ‘Opening Time’,
‘fields’ => array (
array (
‘key’ => ‘field_58795883ae60c’,
‘label’ => ‘Opening Time’,
‘name’ => ”,
‘type’ => ‘tab’,
),
array (
‘key’ => ‘field_587957a30aecf’,
‘label’ => ‘Breakfast’,
‘name’ => ‘breakfast’,
‘type’ => ‘wysiwyg’,
‘required’ => 1,
‘default_value’ => ”,
‘toolbar’ => ‘full’,
‘media_upload’ => ‘yes’,
),
array (
‘key’ => ‘field_587957f00aed0’,
‘label’ => ‘Lunch’,
‘name’ => ‘lunch’,
‘type’ => ‘wysiwyg’,
‘required’ => 1,
‘default_value’ => ”,
‘toolbar’ => ‘full’,
‘media_upload’ => ‘yes’,
),
array (
‘key’ => ‘field_587958310aed1’,
‘label’ => ‘Dinner’,
‘name’ => ‘dinner’,
‘type’ => ‘wysiwyg’,
‘required’ => 1,
‘default_value’ => ”,
‘toolbar’ => ‘full’,
‘media_upload’ => ‘yes’,
),
array (
‘key’ => ‘field_58795c760f586’,
‘label’ => ‘Direction’,
‘name’ => ”,
‘type’ => ‘tab’,
),
array (
‘key’ => ‘field_58795c900f587’,
‘label’ => ‘Address’,
‘name’ => ‘address’,
‘type’ => ‘text’,
‘default_value’ => ”,
‘placeholder’ => ‘Enter Address Here’,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘none’,
‘maxlength’ => ”,
),
array (
‘key’ => ‘field_58795d8550af4’,
‘label’ => ‘Contact Details’,
‘name’ => ”,
‘type’ => ‘tab’,
),
array (
‘key’ => ‘field_58795da950af5’,
‘label’ => ‘Email’,
‘name’ => ’email’,
‘type’ => ’email’,
‘required’ => 1,
‘default_value’ => ”,
‘placeholder’ => ‘Enter contact Email Address here’,
‘prepend’ => ”,
‘append’ => ”,
),
array (
‘key’ => ‘field_58795dde50af6’,
‘label’ => ‘Phone Number’,
‘name’ => ‘phone_number’,
‘type’ => ‘text’,
‘required’ => 1,
‘default_value’ => ”,
‘placeholder’ => ‘Enter Reachable Contact Phone Number Here.’,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘html’,
‘maxlength’ => ”,
),
),
‘location’ => array (
array (
array (
‘param’ => ‘page’,
‘operator’ => ‘==’,
‘value’ => ’15’,
‘order_no’ => 0,
‘group_no’ => 0,
),
),
),
‘options’ => array (
‘position’ => ‘normal’,
‘layout’ => ‘default’,
‘hide_on_screen’ => array (
),
),
‘menu_order’ => 0,
));
register_field_group(array (
‘id’ => ‘acf_signature-dishes’,
‘title’ => ‘Signature Dishes’,
‘fields’ => array (
array (
‘key’ => ‘field_5878ff13d8ea4’,
‘label’ => ‘Signature Dishes’,
‘name’ => ‘signature_dishes’,
‘type’ => ‘text’,
‘required’ => 1,
‘default_value’ => ”,
‘placeholder’ => ‘Enter Title Here Please’,
‘prepend’ => ”,
‘append’ => ”,
‘formatting’ => ‘none’,
‘maxlength’ => ”,
),
),
‘location’ => array (
array (
array (
‘param’ => ‘page’,
‘operator’ => ‘==’,
‘value’ => ’15’,
‘order_no’ => 0,
‘group_no’ => 0,
),
),
),
‘options’ => array (
‘position’ => ‘normal’,
‘layout’ => ‘no_box’,
‘hide_on_screen’ => array (
),
),
‘menu_order’ => 0,
));
}
endif;
or i might doing it wrong
Hi,
We are getting this error too. We just purchased the Pro version and updated our ACF plugin by following the V4 to V5 instructions.
Our custom field -> field type -> Content -> Image is not recognized, and the “type” column says “Error Field type does not exist”.
When I create a new field and click on the drop down menu for field type, I see under Content heading:
Wysiwyg Editor
oEmbed
Gallery
Image is no longer listed on that drop down menu.
Thanks for any help you can provide!
I tested the possible variations, here’s what I got
Both combinations are working:
1) With AFC set to textfield and html tags conversion.
2) With AFC set to textfield and carriage return conversion to <br />.
3) AFC set to WYSIWYG Editor in any combination not working.
What works only works with a new blog post set up.
It is not working when the AFC fields simply get updated after the field setting is changed to reflect the the right setting (1&2).
Anything I can do to get 850 entries to work upon editing and updating?

I just look through the code of ACF4 and any shortcodes added to wysiwyg fields should work without any extra code. I don’t use jetpack, but if these shortcodes work the same as any other wp shortcodes then there should be no reason that they don’t work unless there is something else on the site that’s interfering. I’d say to disable other plugins, but, while I don’t use jetpack, I am familiar with it and there are reasons that I don’t use it.
Version 4.4.11
I switched both, the Acf field and the coding to “textarea” – did not work
Keeping it at Wysiwyg editor and trying wysiwyg – didn’t work
I am reading through the documentary on the look out for further options.

All shortcodes should be run in wysiwyg fields by default, so we’re back to your original problem. The shortcodes should be working without adding any code.
Try changing “textarea” to “wysiwyg”
add_filter('acf/format_value/type=wysiwyg', 'my_acf_format_value', 10, 3);
what version of ACF are you using?
Right again, John
The field I am trying to add the shortcode to is defined as WYSIWYG Editor (German translation). Want me to replace “textarea” with “wysiwyg editor” (or look up the correct english expression.
Thank you again.

Hi @infoamitywebsolutions-co-uk
ACF actually makes use of a similar filter to fetch the ACF data this is the acf_the_content filter.
This controls the output from the ACF WYSIWYG field and you can use the filter to format the value.
Hey people. I was reading through the latest changelogs and it seems a fix has been release to alleviate this issue. Not sure if it would fix it (I can’t validate right now on the website that was causing the issue for me). Maybe validate? https://www.advancedcustomfields.com/blog/acf-pro-5-5-0-update/ (WYSIWYG delay option)
Having a similar issue with v 5.5.2. I have the following setup:
Flexible Content Field
– Repeater Field
— WYSIWYG Field
When I save the page, the WYSIWYG field is blank. If I move the WYSIWYG field out of the repeater, then the content saves for some reason.
** Reverting to v5.3.9.2 has fixed the issue.
They’re wysiwyg fields within flex fields. I think the data is still being stored, it just loads an empty editor in admin and displays all my code around my loops on the templates without showing what’s in them

What type of fields are we talking about, other than it being a wysiwyg field. Are these fields sub fields in a repeater or a flex field?

Hi @permanyer
I’ve just checked it again using WPML and it seems that WPML is duplicating the last ‘tr’ element on the page and adding it’s meta box (language switcher).
The problem is that this duplicated tr contains all the ACF classes, so ACF thinks it is a WYSIWYG field. This is why the JS fails.
Can you please contact WPML and let them know that they should use a clean ‘<tr>’ element to avoid conflicts with 3rd party plugins. ACF is not the only plugin that appends extra form inputs to the category edit page, so it would be in WPML’s best interest to fix the issue from their end.
I hope this makes sense 🙂

Hi @moettinger
You should be able to export the JSON file from “Custom Fields > Tools”.
Also, it seems your WYSIWYG field somehow has the Show Media Upload Buttons? set to empty, which makes ACF thinks that it’s set to false.
To fix it, could you please expand/open all WYSIWYG fields in your flexible content field on the field group editor page and then resave it. You don’t need to change anything, though.
Hope this helps 🙂
My biggest issue is during the image upload process. My current implementation is as follows:
Flexible Field
– Layout
— Flexible Field
— WYSIWYG
— Image Upload
— Plain Text
The Layouts are 1,2,3,4 columns etc… so each column could use WYSIWYG, image or plain text options.
Right now I have ACF PRO 5.4.8, am using @hube2 Reusable Field Groups plugin along with some others that I’ve included in the below zip.
So far I’ve switched WYSIWYG to text tab default (trying @3pointross plugin :), switched from using image object to ID, use no conditionals in the front end. Around image number 5 being added to a column row, I get exceptional page lag.
I completely understand limiting the complexity of flex content fields, but really want ACF to work as it’s a great plugin @elliot
UPDATE Have to abandon ACF on a current client site. They experience timeouts when creating rows. I’d love a concrete solution here, but Beaver Builder is going to have to replace for this project.
Same issue here. Using flexible content field with ability for user to select number of columns where each column editor will show its own WYSIWYG. In random columns, the media upload button is missing.
I posted this on another thread, but in the interest of helping others out and getting some feedback I’ll post here as well…
I’ve run into a similar issue specifically with JS performance and multiple TinyMCE elements. I’ve been working on a fix that I’d love some help testing.
Like many of you I end up with sites that have a TinyMCE field in a repeater or flexible content widget. If the client ends up adding more rows than expected the performance degrades quickly.
So I built an add-on field that lazy loads the TinyMCE editor when someone wants to edit the content of the field. That way only one TinyMCE instance is active at a given time and performance improves significantly.
I’ve used it in a few places and it currently supports both ACF4 and ACF5, but I’d love to get more people using it to see if I’ve missed anything.
You can download and try it out here https://github.com/3pointross/ACF-Lite-WYSIWYG
Any feedback would be great.
I’ve run into a similar issue specifically with JS performance and multiple TinyMCE elements. I’ve been working on a fix that I’d love some help testing.
Like many of you I end up with sites that have a TinyMCE field in a repeater or flexible content widget. If the client ends up adding more rows than expected the performance degrades quickly.
So I built an add-on field that lazy loads the TinyMCE editor when someone wants to edit the content of the field. That way only one TinyMCE instance is active at a given time and performance improves significantly.
I’ve used it in a few places and it currently supports both ACF4 and ACF5, but I’d love to get more people using it to see if I’ve missed anything.
You can download and try it out here https://github.com/3pointross/ACF-Lite-WYSIWYG
Any feedback would be great.

While it’s probably a good idea as an example, that is a plugin for tinyMCE and woven into the WP content editor.
You need to somehow extract this and add some more code since this form passes the results back to the WYSIWYG and you’d need it to pass results back to the field in question, or simply build it as part of the field settings.
You also need to remember that ACF only stores a single value for a “page link” field. An interface like this would require storing an array that includes, at a minimum url and open in new tab values, possibly the link text if you want to allow them to supply that. A field that allows these things would require a new field type because none of the available field types store the value in a way that would be compatible with this.
If you attached something like this to the current URL field, and did not supply the “open in new window” option, then you would only be able to store the URL and eventually you’d have people asking “can you add an option to open it in a new window”… and then the inevitable “can you add a way to browse to external links to select them”. Granted, that last one is pie in the sky, but I’ve had clients ask be why they can’t do that with the one built into WP.
I am probably over simplifying it, but the default insert/edit link option that is also available in the WYSIWYG editor seems like the perfect solution. It would be great to use this because clients are already familiar with this interface (see screenshot).
If I want to wrap this in a button I have to give them a different UI to accomplice the same thing. First a checkbox do you want a button? Next do you want a external or internal button? Than the button title, button url and if it should open in a new tab or not, all this is all caught in the simple interface that WordPress is already providing.
![]()

This is just a guess, so I’m not sure if it will do you any good. Basically you need to alter the widget arguments for ‘before_widget’ and ‘after_widget’ based on the custom field. Like most widgets, where are no hooks in the widget itself to make these changes https://plugins.svn.wordpress.org/wysiwyg-widgets/trunk/includes/class-widget.php.
The closest I’ve been able to find is this WP hook https://developer.wordpress.org/reference/hooks/dynamic_sidebar_params/. From looking at it I’m guessing that $params contains information on all of the widgets that are in the sidebar, but again, this is just a guess. If the guess is correct you could loop through all of the widgets, find the right ones, get your custom field value and then modify the before and after widget arguments to include your container div with the background image.
Hi John,
Thanks for responding so quickly! I totally understand, I think I need to figure out a new approach.
One angle I’ve thought of is adding the same class to every link that is outputted by the WYSIWYG editor. Is that possible? So say on the front-end every link looked like:
<a href="blahblah" class="scroll-to-link"></a>
I’ve had a look through the TinyMCE documentation but everything seems to be weighted towards styling the editor – I haven’t come across anything that would help me add a class.
Thanks!
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.