for all the hell that the autop function seems to give me when I don’t want it, I have several custom meta boxes with tinyMCE textareas. and now they aren’t saving
tags.. they seem to be ok w/ saving other html markup.
my html for one of my boxes looks like:
<div class="customEditor">
<div class="custom_upload_buttons" class="hide-if-no-js"><?php do_action( 'media_buttons' ); ?></div>
<?php $mb->the_field('below_content'); ?>
<textarea rows="10" cols="50" name="<?php $mb->the_name(); ?>" rows="3"><?php $mb->the_value(); ?></textarea>
</div>
the naming and stuff is all handled by WPAlchemy, hence the weird $mb->the_name() stuff
function
my_admin_print_footer_scripts() { ?>/*
/* * Multiple TinyMCE Settings */
settings = {
mode:”specific_textareas”,
width:”100%”, theme:”advanced”,
skin:”wp_theme”,
theme_advanced_buttons1:”bold,italic,strikethrough,underline,|,bullist,numlist,blockquote,|,justifyleft,justifycenter,justifyright,|,link,unlink,|,spellchecker”,
theme_advanced_buttons2:”formatselect,XXXforecolor,|,pastetext,pasteword,removeformat,|,outdent,indent,|,undo,redo,|,code”,
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,tabfocus”
};jQuery(document).ready(function($) { var $ta, id, mceID; $('.customEditor textarea').each(function(i){ $ta = $(this); id = $ta.attr('id'); if (!id){ id = 'customEditor-' + i; $ta.attr('id',id); } tinyMCE.settings = settings; tinyMCE.execCommand('mceAddControl',false, id);
});$('.custom_upload_buttons a').each(function() { $(this).click(function() { mceID = $(this).parent().next('textarea').attr('id'); window.send_to_editor = window.send_to_editor_clone; }); window.send_to_editor_clone = function(html){ tinyMCE.execInstanceCommand(mceID, 'mceInsertContent', false, html); tb_remove(); } }); }); /* ]]> */</script><?php }// important: note the priority of 99,
the js needs to be placed after
tinymce loads
add_action(‘admin_print_footer_scripts’,’my_admin_print_footer_scripts’,99);
i did sort this out eventually. it turns out that WP does NOT save p tags into the editor. but linebreaks and the like are converted into p tags w/ certain WP filters. so the solution was a combination of altering my textbox to look like:
and running wpautop (and a few other of the_content’s default filters on the output