【问题标题】:Wordpress save wp_editor content using settings APIWordpress 使用设置 API 保存 wp_editor 内容
【发布时间】:2015-06-29 10:40:46
【问题描述】:

我正在创建一个带有管理设置页面的插件,并且我想使用设置 API。

我可以保存文本字段和复选框,但是当我添加带有 wp_editor 的设置字段时,它没有保存..?

我以前用get_option 来做这个,但现在我想使用一个设置类和register_setting() 方法。

这是我的代码:

public function register_settings() {
    register_setting( 'eman_setting', 'eman_setting', array( $this, 'eman_validate_settings' ) );

    add_settings_field(
        'eman_dashboard_welcome',                      
        __( "", 'emanlang' ),                           
        array( $this, 'eman_dashboard_welcome_callback' ),   
        'management-settings',                          
        'eman_settings_section'         
    );  

}

public function eman_dashboard_welcome_callback() {
    //$content = 'Empty';
    $editor_id = 'textareadashboardwelcome';    
    $args = array('textarea_name' => 'eman_dashboard_welcome');

    if(! empty( $this->eman_setting['eman_dashboard_welcome'] ) ) {
        $content = $this->eman_setting['eman_dashboard_welcome'];
    } else {
        $content = 'The field is empty';
    }

    wp_editor( $content, $editor_id, $args );

    /** TESTING **/
    echo '<br /><b>testing textarea output: </b>'. $content .'<br /><br />';
    echo '<b>Complete settings array dump: </b><br />';
    echo var_dump($this->eman_setting);

}

注意:这只是代码的相关部分。在此页面上,我有多个“add_settings_field”,它们都工作正常。

您可能已经注意到,为了测试,我使用var_dump() 来检查选项数组中的内容。

转储返回:

array(3) { ["eman_opt_in"]=> string(2) "on" ["eman_sample_text"]=> string(10) "sample 1.1" ["eman_sample_text2"]=> string(10) "sample 2.2" } 

保存表单后,数组只包含3个字段,所以数组甚至没有填充[eman_dashboard_welcome]?

我尝试了很多可能的解决方案,比如添加这个 jQuery:

$('#submit').mousedown( function() {
tinyMCE.triggerSave();
}); 

但没有任何效果...请帮助:-)

【问题讨论】:

    标签: wordpress wp-editor


    【解决方案1】:

    找到了..

    解决方案:

    Textarea / wp_editor 'name' 需要调用数组中的字段。

    就我而言:

    $args = array('textarea_name' => 'eman_setting[eman_dashboard_welcome]');
    wp_editor( $content, $editor_id, $args );
    

    【讨论】:

    • 固体溶液。感谢您花时间回答您自己的问题!
    猜你喜欢
    • 2016-04-08
    • 1970-01-01
    • 2012-06-08
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    相关资源
    最近更新 更多