Can someone tell me how to tell WordPress’ tinymce editor to NOT strip out script tags? I looked in wp-admin/includes/post.php
and added
'extended_valid_elements'=>'script[charset|defer|language|src|type]',
to the $initArray
.
When I do a view source on the CMS post editor, I see that it does show up like so:
<script type="text/javascript">
/* <![CDATA[ */
tinyMCEPreInit = {
base : "http://dev.esolar.ca/wp-includes/js/tinymce",
suffix : "",
query : "ver=327-1235",
mceInit : {
mode:"specific_textareas",
editor_selector:"theEditor",
width:"100%",
theme:"advanced",
skin:"wp_theme",
theme_advanced_buttons1:"bold,italic,strikethrough,|,bullist,numlist,blockquote,|,justifyleft,justifycenter,justifyright,|,link,unlink,wp_more,|,spellchecker,fullscreen,wp_adv",
theme_advanced_buttons2:"formatselect,underline,justifyfull,forecolor,|,pastetext,pasteword,removeformat,|,charmap,|,outdent,indent,|,undo,redo,wp_help",
theme_advanced_buttons3:"",
theme_advanced_buttons4:"",
language:"en",
spellchecker_languages:"+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv",
theme_advanced_toolbar_location:"top",
theme_advanced_toolbar_align:"left",
theme_advanced_statusbar_location:"bottom",
theme_advanced_resizing:"1",
theme_advanced_resize_horizontal:"",
dialog_type:"modal",
relative_urls:"",
remove_script_host:"",
convert_urls:"",
apply_source_formatting:"",
remove_linebreaks:"1",
gecko_spellcheck:"1",
entities:"38,amp,60,lt,62,gt",
accessibility_focus:"1",
tabfocus_elements:"major-publishing-actions",
media_strict:"",
paste_remove_styles:"1",
paste_remove_spans:"1",
paste_strip_class_attributes:"all",
wpeditimage_disable_captions:"",
plugins:"safari,inlinepopups,spellchecker,paste,wordpress,media,fullscreen,wpeditimage,wpgallery,tabfocus"
},
load_ext : function(url,lang){
var sl=tinymce.ScriptLoader;
sl.markDone(url+'/langs/'+lang+'.js');
sl.markDone(url+'/langs/'+lang+'_dlg.js');
}
};
/* ]]> */
</script>
But for some reason ,my editor still doesn’t save <script>
tags. What am I doing wrong?
It’s down to KSES filtering before your post is saved in the DB.
In your theme’s functions.php, globalise the variable
$allowedpostags
, then add the tags you want to allow like so;Note the structure of the array, and the fact you have to specify the allowed attributes too.
I had a similar problem with iframes. I think instead of
<script attributes>
, it might be[script attributes]
. You’ll have to look up the syntax