it-swarm.com.de

kann ich der Formatoption im Textfeld ein benutzerdefiniertes Format hinzufügen?

Ist es möglich, im Texteditor, in dem Sie Überschriften und andere Einstellungen festlegen können, eigene Stile für Clients hinzuzufügen? und sogar die unnötigen entfernen?

14
Mild Fuzz

Der "klassische" TinyMCE-Editor verfügt über zwei Dropdown-Listen: formatselect für Absatzstile und styleselect für Zeichenstile -, die auch Absatzstile enthalten können, um die Darstellung zu vereinfachen. Die Konfiguration in WordPress zeigt standardmäßig nur das Format Dropdown. Wenn Sie ein benutzerdefiniertes Stylesheet auf den Editor anwenden, kann TinyMCE damit die Klassennamen abrufen und zur Dropdown-Liste style hinzufügen. Dies hat jedoch nicht jedes Mal bei mir funktioniert.

Seit 3.0 können Sie add_editor_style() in Ihrem functions.php aufrufen, um dem Editor ein Stylesheet hinzuzufügen. Standardmäßig ist es editor-style.css in Ihrem Themenverzeichnis. Vor 3.0 müssen Sie sich in den mce_css-Filter einbinden, um die URL zu Ihrem Editor-Stylesheet hinzuzufügen. Dies wird in dem content_css TinyMCE-Konfigurationswert enden.

Um das Dropdown-Menü style hinzuzufügen, muss die Option styleselect in einem der Konfigurationsfelder der Schaltflächenleiste angezeigt werden ( theme_advanced_buttons[1-4] in TinyMCE, gefiltert nach mce_buttons_[1-4] in WordPress). Die Liste der Blockformate wird durch die Option theme_advanced_blockformats von TinyMCE gesteuert, die Sie im Filter tiny_mce_before_init zum Steuerfeld hinzufügen können. Wenn Sie die Namen der Dropdown-Liste style anpassen möchten (nicht nur Ihre CSS-Klassennamen), lesen Sie die Option theme_advanced_styles . Sie können auch die erweiterte Option style_formats verwenden, mit der Sie die Stile flexibler definieren können.

Der relevante PHP Code mit allen Hooks und der Standardkonfiguration befindet sich in wp-admin/includes/post.php IN DER FUNKTION wp_tiny_mce() . Alles in allem könnte Ihr Setup so aussehen:

add_action( 'after_setup_theme', 'wpse3882_after_setup_theme' );
function wpse3882_after_setup_theme()
{
    add_editor_style();
}

add_filter('mce_buttons_2', 'wpse3882_mce_buttons_2');
function wpse3882_mce_buttons_2($buttons)
{
    array_unshift($buttons, 'styleselect');
    return $buttons;
}

add_filter('tiny_mce_before_init', 'wpse3882_tiny_mce_before_init');
function wpse3882_tiny_mce_before_init($settings)
{
    $settings['theme_advanced_blockformats'] = 'p,h1,h2,h3,h4';

    // From http://tinymce.moxiecode.com/examples/example_24.php
    $style_formats = array(
        array('title' => 'Bold text', 'inline' => 'b'),
        array('title' => 'Red text', 'inline' => 'span', 'styles' => array('color' => '#ff0000')),
        array('title' => 'Red header', 'block' => 'h1', 'styles' => array('color' => '#ff0000')),
        array('title' => 'Example 1', 'inline' => 'span', 'classes' => 'example1'),
        array('title' => 'Example 2', 'inline' => 'span', 'classes' => 'example2'),
        array('title' => 'Table styles'),
        array('title' => 'Table row 1', 'selector' => 'tr', 'classes' => 'tablerow1'),
    );
    // Before 3.1 you needed a special trick to send this array to the configuration.
    // See this post history for previous versions.
    $settings['style_formats'] = json_encode( $style_formats );

    return $settings;
}
17
Jan Fabry

Wie hier beschrieben TinyMCE-Format-Dropdown zeigt keine Stilvorschauen mehr an

Kara hatte es richtig gemacht, Sie müssen die Standardstile deaktivieren, um die neuen Stile zu sehen ...

unset($init['preview_styles']);

return $settings;
0
user2136473