2017-06-13 65 views
0

这个职位有一些解决方案,但笔者希望提高它
已经阅读了大量的文献和论坛的我找不到我的问题完美的解决方案。由于某种原因,我想在管理面板的主题选项中使用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(); 
    }); 
}); 

之后,这一切正常,但我不喜欢这种代码和解决问题的方法。如果有人知道更有趣的解决方案,请展示它。 致以问候

回答

0

我刚刚发现了我所有的错误。这个问题是解决了!
清楚地理解wp_editor中的每个属性非常重要。我的问题是我使用了textarea和wp_editor,这就是为什么我遇到了上述的问题。所以,如果某人和我有同样的情况,我想向您推荐以下建议:
您的代码中不得使用真正的textarea。你可以像这样启动wp_editor:

<?php wp_editor($options['king_text1'], 'kingtext', array(
    'wpautop'  => 1, 
    'media_buttons' => 1, 
    'textarea_name' => 'king_theme_options[king_text1]', //This is important line!!! 
    'textarea_rows' => 20, 
    'tabindex'  => null, 
    'editor_css' => '', 
    'editor_class' => 'tiny_kingtext', 
    'teeny'   => 0, 
    'dfw'   => 0, 
    'tinymce'  => 1, 
    'quicktags'  => 1, 
    'drag_drop_upload' => false 
)); 

毕竟没有其他厚度是必需的。一切运作良好:打开,保存等。