views:

136

answers:

3

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 taht 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?

+1  A: 

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.

TheDeadMedic
but the tags are stripped out immediately after I press Publish in the wysiwyg editor. I click on the HTML tab in the editor, and the <script> tags have been removed from the content.
John
So, let me just make sure I get you - you type some `<script>` in the HTML editor, switch to TinyMCE, switch back and it's gone?
TheDeadMedic
almost...click on HTML of the editor, type <script>stuff</script>, press publish, page refreshes, the <script> tags disappear from the editor.
John
A: 

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

John
A: 

Does anybody get solution for the problem in Wordpress 3?

martb