未在前端加载ADD_EDITOR_STYLE。有什么解决办法吗?

时间:2013-02-17 作者:Ünsal Korkmaz

这是默认的wordpress add\\u editor\\u样式函数:

function add_editor_style( $stylesheet = \'editor-style.css\' ) {

    add_theme_support( \'editor-style\' );

    if ( ! is_admin() )
        return;

    global $editor_styles;
    $editor_styles = (array) $editor_styles;
    $stylesheet    = (array) $stylesheet;
    if ( is_rtl() ) {
        $rtl_stylesheet = str_replace(\'.css\', \'-rtl.css\', $stylesheet[0]);
        $stylesheet[] = $rtl_stylesheet;
    }

    $editor_styles = array_merge( $editor_styles, $stylesheet );
}
如你所见if ( ! is_admin() ) return; 是否存在,基本上我们无法向前端wp\\U编辑器添加自定义样式。。什么是合适的解决方案?

2 个回复
最合适的回答,由SO网友:Ünsal Korkmaz 整理而成

以下是我的解决方案:

add_filter(\'the_editor_content\', "firmasite_tinymce_style");
function firmasite_tinymce_style($content) {
    add_editor_style(\'assets/css/custom.css\');

    // This is for front-end tinymce customization
    if ( ! is_admin() ) {
        global $editor_styles;
        $editor_styles = (array) $editor_styles;
        $stylesheet    = (array) $stylesheet;

        $stylesheet[] = \'assets/css/custom.css\';

        $editor_styles = array_merge( $editor_styles, $stylesheet );

    }
    return $content;
}
现场示例:http://unsalkorkmaz.com/firmasite-social-buddypress-bbpress-theme-based-on-bootstrap/检查注释wp\\U编辑器。。其加载引导程序。css和google字体等。。

此代码是额外的:

// Removing wordpress version from script and styles
add_action("wp_head", "firmasite_remove_version_from_assets",1);
function firmasite_remove_version_from_assets(){
    function remove_cssjs_ver( $src ) {
        if( strpos( $src, \'?ver=\' ) )
            $src = remove_query_arg( \'ver\', $src );
        return $src;
    }
    add_filter( \'style_loader_src\', \'remove_cssjs_ver\', 999 );
    add_filter( \'script_loader_src\', \'remove_cssjs_ver\', 999 );
}
它将从样式和脚本中删除版本。所以浏览器不会将同一样式加载两次。

SO网友:s_ha_dum

add_editor_style 不是要在前端加载样式表。这是为了使网站后端显示的可视化编辑器看起来更像前端帖子的最终版本。没有允许您更改该行为的筛选器(您找到了函数源)。

如果您在前端有一个编辑器,那么可以像在前端设置其他样式一样,通过编辑来设置它的样式style.css 或者通过有条件地加载另一个样式表wp_register_style, wp_enqueue_style, 和wp_enqueue_scripts

function load_front_editor_style_wpse_87256() {
  if (!is_page_template(\'editor.php\')) return false;
  wp_register_style( \'fedstyle\', get_stylesheet_directory().\'/path/to/stylesheet\', false, null, \'all\' );
  wp_enqueue_style( \'fedstyle\' );
}
add_action( \'wp_enqueue_scripts\', \'load_front_editor_style_wpse_87256\' ); 
我不知道您的编辑器是如何工作的,但我包含了一个条件,该条件只应将编辑器加载到名为editor.php. 我相信这是错误的,但应该是说明性的。

Caveat: 我不知道你的前端编辑器是什么,也不知道它是如何工作的。我假设您在前面加载的是核心编辑器。我知道直接编辑管理样式表(适当与否)将改变后端编辑器的外观。同样的事情也应该发生在前面。

http://codex.wordpress.org/Function_Reference/get_stylesheet_directory
http://codex.wordpress.org/Function_Reference/is_page_template

结束

相关推荐

Front-End Post Submission

我正在尝试添加一个表单,用户可以从前端提交帖子。我正在学习本教程:http://wpshout。com/wordpress从前端提交帖子/我正在做的是添加this code 到我的一个页面模板。表单显示正常,但当我单击“提交”按钮时,它会显示“Page not found error“”许多评论者说这不起作用。谁能给我指出正确的方向吗?代码是否不完整?有缺陷吗?我做错什么了吗?谢谢Towfiq I。