add_editor_style no se está cargando en la interfaz. ¿Alguna solución?

2

Esta es la función por defecto de wordpress add_editor_style:

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 );
}

Como ve, if ( ! is_admin() ) return; está ahí y, básicamente, no podemos agregar estilos personalizados al frontend wp_editor ... ¿Cuál es la solución adecuada para él?

    
pregunta Ünsal Korkmaz 17.02.2013 - 15:20

2 respuestas

4

Aquí está mi solución:

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;
}

Ejemplo en vivo: enlace Verifique los comentarios wp_editor .. su carga bootstrap.css y fuentes de google, etc.

Este código es extra:

// 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 );
}

Se está eliminando la versión de los estilos y scripts. Así que el navegador no cargará el mismo estilo dos veces.

    
respondido por el Ünsal Korkmaz 17.02.2013 - 17:13
2

add_editor_style no está diseñado para cargar una hoja de estilo en la parte delantera. Tiene la intención de hacer que el editor visual en el backend del sitio se parezca más a la versión final de la publicación en la parte delantera. No hay ningún filtro (usted encontró la fuente de la función) que le permite cambiar ese comportamiento.

Si tiene un editor en la parte delantera, aplíquelo como si fuera cualquier otra cosa, en la parte frontal, editando style.css o cargando condicionalmente otra hoja de estilo con wp_register_style , wp_enqueue_style , y 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' ); 

No sé cómo funciona su editor, pero incluí una condición que solo debería cargar el editor en una plantilla llamada editor.php . Estoy seguro de que eso está mal, pero debería ser ilustrativo.

Advertencia: No sé qué es tu editor de front-end o cómo funciona. Supongo que es el editor central que ha cargado en la parte frontal. Sé que editar directamente una hoja de estilo de administrador (apropiada o no) alterará la apariencia del editor de back-end. Lo mismo debería ser cierto en el frente.

enlace
enlace

    
respondido por el s_ha_dum 17.02.2013 - 16:04

Lea otras preguntas en las etiquetas