我已經使用wp_editor創建了一個前端編輯器,它的功能與它應該一樣。Wordpress wp_editor短代碼問題
經過測試,我注意到它剝離了已插入內容的任何簡碼。我研究過這個問題,發現它是'ob_'(輸出緩衝),它正在刪除它們。如果我刪除了這個輸出緩衝,那麼這個簡碼顯示正常,但是它破壞了我爲編輯創建的功能。
我將如何保留下面使用的代碼,但修改它以確保顯示所有的短代碼?任何幫助/想法大爲讚賞,S.
if(!is_feed() && current_user_can('manage_network')) :
function ps_add_post_editor($content) {
global $post;
$settings = array(
'wpautop' => true,
'media_buttons' => false
);
$content .= '<div id="content-edit-area" style="display:none;"><form action="" id="page-content-editor-panel" method="post"><span id="ajax_my_post_edit_nonce" class="hidden">' . wp_create_nonce('ajax_my_post_edit_nonce') . '</span>' . ps_get_wp_editor($post->post_content, 'textarea-' . $post->ID , $settings) . '<input type="submit" id="feesavebtn" value="Save" /></form><a href="#" id="cancelbtn">Cancel</a></div><br><br><div id="loadingmessage"><img src="'.get_template_directory_uri().'/images/loading.gif" /> saving...</div>
<style type="text/css">
#textarea-'.$post->ID.'_ifr, #textarea-'.$post->ID.' { min-height:700px !important; }
</style>
<script type="text/javascript">
jQuery(\'#page-content-editor-panel\').submit(function(){
var pageid = '.$post->ID.';
var content;
var editor = tinyMCE.get(\'textarea-'.$post->ID.'\');
if (editor) {
content = editor.getContent();
} else {
content = jQuery(\'#textarea-'.$post->ID.'\').val();
}
jQuery(\'#content-edit-area\').hide();
jQuery(\'#loadingmessage\').show();
jQuery.post(
ajaxurl,
{
\'action\':\'add_foobar\',
\'nonce\':jQuery(\'#ajax_my_post_edit_nonce\').text(),
\'post_id\':pageid,
\'post_data\':content
},
function(response){
window.location.reload(true);
}
);
return false;
});
</script>';
return $content;
}
function ps_get_wp_editor($content,$textarea,$settings) {
ob_start();
wp_editor($content, $textarea, $settings);
$edior_html_code = ob_get_contents();
ob_end_clean();
return $edior_html_code;
}
add_filter('the_content', 'ps_add_post_editor');
add_action('wp_ajax_add_foobar', 'prefix_ajax_add_foobar');
add_action('wp_ajax_nopriv_add_foobar', 'prefix_ajax_add_foobar');
function prefix_ajax_add_foobar() {
if(wp_verify_nonce($_REQUEST['nonce'], 'ajax_my_post_edit_nonce')) {
$myfee_post = array();
$myfee_post['ID'] = $_POST['post_id'];
$myfee_post['post_content'] = $_POST['post_data'];
wp_update_post($myfee_post);
die("This page has now been updated.");
} else {
die("Unable to process your request at this time.");
}
}
endif;
我不知道你是否已經碰到過這一點,但它可能是模糊使用HTTPS ://github.com/jaredatch/Custom-Metaboxes-and-Fields-for-WordPress/issues/129。我對Ajax和這個'wp_editor'函數有很多問題沒有解決,而且信息非常稀少。 –
我使用'wp_editor()'而不是'ps_get_wp_editor()'(沒有'ob_ *'東西)測試了你的代碼,它工作正常,短代碼沒有被去除。您是否嘗試禁用所有其他插件並使用TwentyTwelve主題? – brasofilo