既然这个SO链接指向我的问题,我将在这里重新发布并进行扩展。
TinyMCE不在编辑器中保存“p”标记,而是通过WordPress函数(例如wpautop()
. 因此,解决方案是将我的文本框更改为:
<textarea class="wysiwyg" rows="10" cols="50" name="some_textarea" rows="3"><?php echo wp_richedit_pre($value); ?></textarea>
然后在前端重新应用添加到的所有默认过滤器
the_content
.
// in functions.php
add_filter( \'meta_content\', \'wptexturize\' );
add_filter( \'meta_content\', \'convert_smilies\' );
add_filter( \'meta_content\', \'convert_chars\' );
add_filter( \'meta_content\', \'wpautop\' );
add_filter( \'meta_content\', \'shortcode_unautop\' );
add_filter( \'meta_content\', \'prepend_attachment\' );
add_filter( \'meta_content\', \'do_shortcode\');
然后在需要打印信息的位置:
echo apply_filters( \'meta_content\', $data );
你可以直接应用内容过滤器,但我发现很多插件也会向其中添加内容,最后我发现到处都有社交共享按钮,所以想出了这个解决方案。
您可以查看我的githubrepeatable, sortable, tinyMCE-enabled text editors (使用WP Alchemy,但我认为JS可以在没有WPA的情况下使用)