wake-up-neo.com

add_editor_style wird im Frontend nicht geladen. Irgendeine Lösungsmöglichkeit?

Dies ist die Standardfunktion von 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 );
}

Wie Sie sehen, gibt es if ( ! is_admin() ) return; und im Grunde können wir dem Frontend wp_editor keine benutzerdefinierten Stile hinzufügen. Was ist die richtige Lösung dafür?

3
Ünsal Korkmaz

Hier ist meine Lösung:

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

Live-Beispiel: http://unsalkorkmaz.com/firmasite-social-buddypress-bbpress-theme-based-on-bootstrap/ Kommentare überprüfen wp_editor .. das Laden von bootstrap.css und Google Fonts etc ..

Dieser Code ist 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 );
}

Seine entfernende Version von den Arten und von den Indexen. Der Browser lädt also nicht zweimal den gleichen Stil.

6
Ünsal Korkmaz

add_editor_style soll kein Stylesheet auf dem Frontend laden. Damit soll die Anzeige des visuellen Editors im Backend der Site mehr wie die endgültige Version des Posts im Frontend aussehen. Es gibt keinen Filter (Sie haben die Funktionsquelle gefunden), mit dem Sie dieses Verhalten ändern können.

Wenn Sie einen Editor am Front-End haben, gestalten Sie ihn wie alles andere - am Front-End -, indem Sie style.css bearbeiten oder ein anderes Stylesheet mit wp_register_style , wp_enqueue_style und bedingt laden. 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' ); 

Ich weiß nicht, wie Ihr Editor funktioniert, aber ich habe eine Bedingung eingefügt, die den Editor nur in eine Vorlage mit dem Namen editor.php laden soll. Ich bin sicher, dass das falsch ist, aber illustrativ sein sollte.

Einschränkung:Ich weiß nicht, was Ihr Front-End-Editor ist oder wie er funktioniert. Ich gehe davon aus, dass es der Kerneditor ist, den Sie auf der Vorderseite geladen haben. Ich weiß, dass das direkte Bearbeiten eines Admin-Stylesheets (angemessen oder nicht) das Erscheinungsbild des Backend-Editors verändert. Das gleiche sollte auf der Vorderseite zutreffen.

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

2
s_ha_dum