将wp编辑器添加到自定义插件并保存数据

时间:2015-03-19 作者:Interactive

我正在创建一个自定义插件。插件中的一个字段允许用户添加数据
如果我添加textarea 用户无法控制文本。所以我想添加一个编辑器<我知道WordPress提供wp_editor(); 功能<在谷歌搜索了几次之后,我发现实现编辑器非常容易

$content = \'\';
$editor_id = \'mycustomeditor\';

wp_editor( $content, $editor_id );
这显示了一个很好的编辑器。问题是没有保存内容
编辑器是表单的一部分,所以我想我应该像这样将save函数添加到表单save函数中:
if( isset( $_POST[ \'mycustomeditor\' ] ) ) {update_post_meta( $post_id, \'mycustomeditor\', array_map(\'sanitize_text_field\', $_POST[ \'mycustomeditor\' ]) );} 然而,WordPress对此有不同的看法。它确实创建了meta_key 在数据库中,但没有值。

我希望任何人都能看到我做错了什么!

4 个回复
最合适的回答,由SO网友:Interactive 整理而成

解决了!

希望其他人可以使用它,或者它可以解决他们的问题。如果有更好的方法,请分享并说明原因。

$editor_id = \'custom_editor_box\';
$uploaded_csv = get_post_meta( $post->ID, \'custom_editor_box\', true);
wp_editor( $uploaded_csv, $editor_id );
要保存数据,请执行以下操作:

function save_wp_editor_fields(){
    global $post;
    update_post_meta($post->ID, \'custom_editor_box\', $_POST[\'custom_editor_box\']);
}
add_action( \'save_post\', \'save_wp_editor_fields\' );
这就是全部!

SO网友:Uriahs Victor

这是我在我的一个插件中使用它的方式:

<?php
wp_nonce_field(\'nonce_action\', \'nonce_field\');
$content = get_option(\'my_content\');
wp_editor( $content, \'settings_wpeditor\' );
?>

function settings_save_wpeditor(){
// check the nonce, update the option etc...

if(isset($_POST[\'settings_wpeditor\']) && isset($_POST[\'nonce_field\']) && wp_verify_nonce($_POST[\'nonce_field\'], \'nonce_action\') ){
update_option(\'my_content\', wp_kses_post($_POST[\'settings_wpeditor\']));
}
}

add_action(\'admin_init\', \'settings_save_wpeditor\', 10);
确保在变量和选项名称中添加前缀,并从WordPress codex中查找wp\\u none和wp\\u verify\\u nonce。

https://codex.wordpress.org/Function_Reference/wp_nonce_fieldhttps://codex.wordpress.org/Function_Reference/wp_verify_nonce

SO网友:Dharmin

$editor_id = \'product_summary\';

$summary =  get_post_meta( $post->ID,\'product_summary\', true );
wp_editor( $summary, $editor_id );
if( isset( $_REQUEST[\'product_summary\'] ) ){
        update_post_meta( $post_id, \'product_summary\',wp_kses_post( $_POST[\'product_summary\'] ) );
    }
中的值更新wp_editor 但不更新数据库中的值,请检查并解决它?

SO网友:Jaswinder Singh

您好,这就是您问题的解决方案,只需复制和粘贴,然后查看。。。。。

    function dhansikhi_hukamnama_post_page(){
    ?>
    <div class=\'wrap\'>
    <h2>My Super Admin Page</h2>
    <form method=\'post\'>
    <?php
    wp_nonce_field(\'nates_nonce_action\', \'nates_nonce_field\');
    $content = get_option(\'special_content\');
    wp_editor( $content, \'special_content\' );
    submit_button(\'Save\', \'primary\');
    ?>
    </form>
    </div><!-- .wrap -->
    <?php
    }
    add_action( \'admin_menu\', \'dhansikhi_hukamnama_page\' );

结束

相关推荐

如何使用index.php在FrontPage上显示插件功能(内容)

稍微高级的Noob警报:{抱歉}。我正在设计一个WordPress网站{尚未激活}。我有一个插件[feelbox],但目前它只显示在单个贴子页面上。插件设置中没有在frontpage[index.php]上显示它的选项。这里是主要的插件文件-feelbox。php太长,无法在此处发布。以下是第一部分:> if (!$options) { feelbox_add_default_options(); } else { if ($optio