wp_editor customization

时间:2016-02-22 作者:mmarquez

在过去的几个小时里,我陷入了一个简单的问题:

我正在开发一个网站,其中我使用了几个wp\\U编辑器实例,所有这些实例都具有自定义按钮和样式。在我的自定义帖子中,只需将参数直接添加到wp\\u编辑器中,就可以实现这一点。

我的问题在于,试图只在用于标准常规Wordpress帖子的编辑器中添加自定义按钮。这是因为我没有手动创建实例,我假设我必须使用过滤器函数。

下面是我如何在自定义帖子中的wp\\u编辑器实例中添加参数:

<?php
wp_editor(
    $options[\'news_title\'],
    \'news_title\',
    array(
        \'textarea_name\' => \'page_options_home_page[news_title]\',
        \'media_buttons\' => false,
        \'textarea_rows\' => 1,
        \'tabindex\' => 4,
        \'quicktags\' => false,
        \'tinymce\' => array(
            \'toolbar1\'=> \'bold,italic\',
            \'toolbar2\'=> \'\',
            \'toolbar3\'=> \'\',
            //\'content_css\' => get_template_directory_uri() . "/build/styles/tiny-mce/page-options-mce-editor.css"
        ),
    )
);
?>
下面是我如何将全局样式添加到wp\\U编辑器中的方法-也很简单,BUT this approach does not work for me 因为它会影响我的所有其他实例。

function my_format_TinyMCE( $in ) {
    //styles for the editor to provide better visual representation.
    $in[\'content_css\'] = get_template_directory_uri() . "/build/styles/tiny-mce-editor.css";
    $in[\'block_formats\'] = "Paragraph=p; Heading 1=h1; Heading 2=h2";
    $in[\'toolbar1\'] = \'formatselect,bold,italic,underline,superscript,bullist,numlist,alignleft,aligncenter,alignright,link,unlink,spellchecker\';
    $in[\'toolbar2\'] = \'\';
    $in[\'toolbar3\'] = \'\';
    $in[\'toolbar4\'] = \'\';
    return $in;
}
add_filter( \'tiny_mce_before_init\', \'my_format_TinyMCE\' );
所以。。。我正试图找到一些关于如何定位特定wp\\U编辑器的方向。一般来说,我很难将参数传递给我没有手动创建的特定wp\\U编辑器(常规post编辑器、bbpress等)。我想删除这些编辑器的几个按钮实例,并将它们保留在自定义编辑器中。

有什么建议吗?

谢谢

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

您可以使用get_current_screen() 函数获取当前用户所在的屏幕(在“管理”面板中),并仅在用户查看时添加这些全局值post 页码:

function my_format_TinyMCE( $in ) {
    $screen = get_current_screen();

    if( is_object( $screen ) && \'post\' == $screen->post_type ) {
        //styles for the editor to provide better visual representation.
        $in[\'content_css\'] = get_template_directory_uri() . "/build/styles/tiny-mce-editor.css";
        $in[\'block_formats\'] = "Paragraph=p; Heading 1=h1; Heading 2=h2";
        $in[\'toolbar1\'] = \'formatselect,bold,italic,underline,superscript,bullist,numlist,alignleft,aligncenter,alignright,link,unlink,spellchecker\';
        $in[\'toolbar2\'] = \'\';
        $in[\'toolbar3\'] = \'\';
        $in[\'toolbar4\'] = \'\';
    }

    return $in;
}
add_filter( \'tiny_mce_before_init\', \'my_format_TinyMCE\' );