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;
global $allowedposttags;
$allowedposttags['script'] = array(
'type' => array(),
'src' => array()
);
Note the structure of the array, and the fact you have to specify the allowed attributes too.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With