在自定义metabox中将页面从html更改为文本后更新页面时的所有tincymce开关

时间:2013-09-21 作者:asaunders

我有一个使用wp\\u编辑器的自定义元框,当我切换到文本编辑器而不是视觉时,更新时,主要内容tinymce也会更改为文本视图。我想知道我是做错了什么,还是wordpress在创建自定义metabox和wp_编辑器时的正常行为?

我用来设置所有这些的代码是:

add_action(\'add_meta_boxes\', \'page_tagline_meta_box\');
function page_tagline_meta_box($post) {
    global $post;
    $post_id = $_GET[\'post\'] ? $_GET[\'post\'] : $_POST[\'post_ID\'] ;
    $homepage_id = get_option(\'page_on_front\');

    $screens = array( \'services\', \'page\');
    if($homepage_id != $post_id) {
        foreach ($screens as $screen) {
            add_meta_box(\'page_tagline_id\', \'Tagline text & Telephone number\', \'page_tagline_meta_box_cb\', $screen, \'normal\', \'high\');
            add_meta_box(\'additional_content_id\', \'Additional Content\', \'additional_content_meta_box_cb\', $screen, \'normal\', \'high\');
        }
    }
}
function additional_content_meta_box_cb($post) {
    global $post;
    wp_nonce_field(\'additional_content_box_nonce\', \'additional_content_meta_box_nonce\');

    $values = get_post_custom($post->ID);

    $additionalContent = isset($values[\'additionalContent\']) ? $values[\'additionalContent\'][0]: \'\';

    $settings = array(
        \'textarea_rows\' => 15,
        \'wpautop\' => true
    );

    wp_editor($additionalContent, \'additionalcontent\', $settings);
}
如果你想看到保存功能,欢迎使用,但我知道它可以保存所有内容,我可以在我的模板中获取内容。当我在自定义元数据库上切换视图时,当我点击update时,它也会切换页面主文本区域的视图,我觉得这很奇怪。

提前感谢您的帮助

亚历克斯

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

正如您所猜测的,这是默认行为。它存储在wp\\u user-settings meta\\u键中每个用户的wp\\u usermeta表中,不会区分不同的编辑器实例。

另一方面,wp\\u edior()的tinymce版本与位于元框内的情况不太配合。特别是如果元盒被移动,或者隐藏然后显示,等等。我强烈建议您要么只使用quicktags版本,要么不使用元盒(使用edit form advanced.php中的任意一个钩子)。

结束

相关推荐

简单自定义Metabox不保存

我不太清楚为什么,但我一直在尝试各种不同的解决方案,但似乎都不管用。我交易过update_post_meta 具有add_post_meta 甚至把它分成3个条件,看看它是在添加、更新还是删除,但似乎什么都不起作用。问题是它实际上不会在更新时保存和显示数据。我知道设置了“\\u desc”,因为当我die() (就在更新之前)。建议我如何找出为什么它没有更新?/** Add the Meta Box **/ function add_custom_meta_box() { glob