为自定义发布类型添加多个可视化编辑器

时间:2013-09-13 作者:ataulm

我正在设计一个网站,将是一个可湿性粉剂网络的一部分;我们被告知不能安装插件。

我有一个自定义的帖子类型,我已经添加了functions.php 我正在写的儿童主题。除了作为编辑帖子的一部分提供的内置编辑器之外,我还想再添加两个可视化编辑器-我相信从3.3开始,这个小部件被称为wp_editor.

是否可以在不使用代谢箱的情况下添加这些?我已经按照使用了WPAlchemythis article, 但我不喜欢从视觉切换到文本是不可能的,而且编辑器出现在另一个框中。

我也看到了this question on WPA 它似乎在问同样的问题,但答案也使用了WPAlchemy。

我已经了解了如何使用wp_editor 而不是如何将其添加到特定帖子类型的后端编辑页面。谢谢

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

这可以通过挂钩实现edit_form_after_titleedit_form_after_editor 然后像元盒子一样继续。我注意到了一个“小问题”,但是,如果您在自定义中交换Visual/Htmlwp_editor,然后发布/刷新页面,其状态将与主编辑器(帖子内容)相同。

调整立柱类型,page 在本例中。

add_action( \'edit_form_after_editor\', \'no_metabox_wspe_114084\' );
add_action( \'save_post\', \'save_wpse_114084\', 10, 2 );

function no_metabox_wspe_114084()
{
    global $post;
    if( \'page\' != $post->post_type )
        return;

    $editor1 = get_post_meta( $post->ID, \'_custom_editor_1\', true);
    $editor2 = get_post_meta( $post->ID, \'_custom_editor_2\', true);

    wp_nonce_field( plugin_basename( __FILE__ ), \'wspe_114084\' );
    echo \'<h2>Aux editor 1</h2>\';
    echo wp_editor( $editor1, \'custom_editor_1\', array( \'textarea_name\' => \'custom_editor_1\' ) );
    echo \'<h2>Aux editor 2</h2>\';
    echo wp_editor( $editor2, \'custom_editor_2\', array( \'textarea_name\' => \'custom_editor_2\' ) );
}

function save_wpse_114084( $post_id, $post_object )
{
    if( !isset( $post_object->post_type ) || \'page\' != $post_object->post_type )
        return;

    if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) 
        return;

    if ( !isset( $_POST[\'wspe_114084\'] ) || !wp_verify_nonce( $_POST[\'wspe_114084\'], plugin_basename( __FILE__ ) ) )
        return;

    if ( isset( $_POST[\'custom_editor_1\'] )  )
        update_post_meta( $post_id, \'_custom_editor_1\', $_POST[\'custom_editor_1\'] );

    if ( isset( $_POST[\'custom_editor_2\'] )  )
        update_post_meta( $post_id, \'_custom_editor_2\', $_POST[\'custom_editor_2\'] );
}

结束

相关推荐