I want to insert a shortcode in the WordPress Post Editor from javascript (not a tinymce plugin). I currently use:

tinyMCE.activeEditor.execCommand('mceInsertContent', false, "[SHORTCODE]test[/SHORTCODE] ");

but this only seems to work when the editor is in “Visual” mode (and sometimes activeEditor == null). How do I accomplish this regardless of the state of the editor? (I’d think this is a fairly common scenario)

1 Answer
1

I was pulling my hair out on this one, but I might have figured it out.

Try this (with jQuery):

if( ! tinyMCE.activeEditor || tinyMCE.activeEditor.isHidden()) {
  jQuery('textarea#content').val("[SHORTCODE]test[/SHORTCODE] ");
} else {
  tinyMCE.execCommand('mceInsertRawHTML', false, "[SHORTCODE]test[/SHORTCODE] ");
}

Basically, you need to set the value of the textarea directly if the editor is hidden.

Leave a Reply

Your email address will not be published. Required fields are marked *