主题选项页面上的WP_EDITOR()字段未保存

时间:2012-05-05 作者:mrwweb

(这是对this question.)

我可以在我的主题选项页面上显示两个所见即所得编辑器,但我在编辑器中输入的值不会保存。我已经read A.ton 属于stuff 关于Settings APIwp_editor() 希望以最友好的方式实现这一点。我觉得我还没有找到一个很好的解释wp_editor() 在主题设置中工作,同时仍根据设置API正确保存。

我有种感觉,尽管wp_editor() 调用位于相关设置字段callbacks中,保存过程没有意识到编辑器与有效选项相关联。

我的主题选项中的相关代码如下:

//register settings
add_action( \'admin_init\', \'us_register_settings\' );
function us_register_settings() {
    add_settings_section( \'us_settings\', \'Settings\', \'us_settings_section_cb\', \'us_options\' );
    register_setting( \'us_settings\', \'us_authors_desc\', \'us_sanitize_wysiwyg\' );
    register_setting( \'us_settings\', \'us_partners_desc\', \'us_sanitize_wysiwyg\' );
    add_settings_field( \'us_authors_desc\', \'Author Archives Descriptions\', \'us_authors_cb\', \'us_options\', \'us_settings\' );
    add_settings_field( \'us_partners_desc\', \'Partners Archives Descriptions\', \'us_partners_cb\', \'us_options\', \'us_settings\' );
}

function us_settings_section_cb() {
    // no need for text here right now
}

function us_authors_cb() {
    $us_author_desc = get_option( \'us_authors_desc\' );
    echo wp_editor( $us_author_desc, \'usauthorsdesc\' );
}

function us_partners_cb() {
    $us_partners_desc = get_option( \'us_partners_desc\' );
    echo wp_editor( $us_partners_desc, \'uspartnersdesc\' );
}

function us_sanitize_wysiwyg( $input ) {
    return $input;
}

function us_options_page() {
?>

<div class="wrap">

    <h2>Options</h2>

    <form method="post" action="options.php">

    <?php
    settings_fields( \'us_settings\' );
    do_settings_sections( \'us_options\' );
    ?>

    <input name="Submit" class="button-primary" type="submit" value="<?php esc_attr_e(\'Save Changes\'); ?>" />

    </form>

</div>

<?php
}
编辑:现在,我也没有对我的设置使用回拨。这可能就是问题所在吗?

更新:在代码中添加了回调函数。没有区别。

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

您需要向编辑器添加名称属性。name属性需要设置为选项的值,如下所示:

function us_partners_cb() {
    $us_partners_desc = get_option( \'us_partners_desc\' );
    echo wp_editor( $us_partners_desc, \'uspartnersdesc\', array(\'textarea_name\' => \'us_partners_desc\')  );
}

结束

相关推荐