这个职位有一些解决方案,但笔者希望提高它
已经阅读了大量的文献和论坛的我找不到我的问题完美的解决方案。由于某种原因,我想在管理面板的主题选项中使用tinyMCE。我在页面上添加了很小的内容,并且很好地显示,但是当我提交时 - 它不保存任何内容。当然,我检查了可读性,并认识到没有提交新的数据。所以,我只是简单地将数据从tinyMCE复制到隐藏字段,然后将隐藏的字段存储复制到数据库。
这里是一些代码:
主题options.php
WordPress的TinyMCE的主题中,选择不保存好
<?php wp_editor($options['king_text1'], 'kingtext', array(
'wpautop' => 1,
'media_buttons' => 1,
'textarea_name' => '',
'textarea_rows' => 20,
'tabindex' => null,
'editor_css' => '',
'editor_class' => 'tiny_kingtext',
'teeny' => 0,
'dfw' => 0,
'tinymce' => 1,
'quicktags' => 1,
'drag_drop_upload' => false
)); ?>
<textarea id="kingtext" class="large-text" cols="50" rows="10"><?php echo esc_attr_e($options['king_text1']); ?> </textarea>
<input type="hidden" id="myText" name="king_theme_options[king_text1]">
然后我说在主题选项文件的头部添加自定义脚本来管理面板的功能:
function javascript_and_styles() {
wp_enqueue_script('admin-js', get_template_directory_uri() . '/js/admin-panel.js', array(), '', true);
}
add_action('admin_enqueue_scripts', 'javascript_and_styles');
而且之后,我添加了一些脚本,在提交之前将mce的数据复制到隐藏的输入:
jQuery(function() {
jQuery('input.button').click(function(e) {
e.preventDefault();
var content = tinyMCE.activeEditor.getContent();
jQuery('#myText').val(content);
jQuery('#myform').submit();
});
});
之后,这一切正常,但我不喜欢这种代码和解决问题的方法。如果有人知道更有趣的解决方案,请展示它。 致以问候