這個職位有一些解決方案,但筆者希望提高它
已經閱讀了大量的文獻和論壇的我找不到我的問題完美的解決方案。由於某種原因,我想在管理面板的主題選項中使用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();
});
});
之後,這一切正常,但我不喜歡這種代碼和解決問題的方法。如果有人知道更有趣的解決方案,請展示它。 致以問候