it-swarm.com.de

TinyMCE Anchor Button wird nicht angezeigt

Ich verwende diesen Filter und diese Funktion, um eine benutzerdefinierte, reduzierte Version des TinyMCE-Editors anzuzeigen. Alles funktioniert wie es sollte ... außer der 'Anker'-Schaltfläche wird nicht angezeigt (' Anker ')? Laut der TinyMCE-Website ( http://www.tinymce.com/wiki.php/Controls ) ist dies das zu verwendende Steuerelement.

Weiß jemand, warum der Ankerknopf nicht angezeigt wird?

enter image description here

BEARBEITEN: Das Codebeispiel stammt von hier (dies zeigt den vollständigen Code, den ich verwende, nicht nur das folgende Snippet): https://Gist.github.com/mrwweb/9937127

add_filter( 'mce_buttons', 'wpse_mce_buttons_1' );
function wpse_mce_buttons_1( $buttons ) {
    $buttons = array( 'styleselect', 'bold', 'italic', 'link', 'unlink', 'bullist', 'numlist', 'table', 'anchor');

    return $buttons;
}
add_filter( 'mce_buttons_2', 'wpse_mce_buttons_2' );
function wpse_mce_buttons_2( $buttons ) {
    $buttons = array();
    return $buttons;
}
3
codeview

Ich hatte genau das gleiche Problem und fand die Lösung dafür.

Das Problem ist, dass das Anker-Plugin für TinyMCE nicht in der Standard-Wordpress-Installation enthalten ist. Also, während Wordpress sagt:

$buttons[] = 'anchor';

… Das wird nicht funktionieren, weil das TinyMCE-Plugin für Anker nicht da ist.

Wenn Sie zu TinyMCEs Website gehen, können Sie das gesamte Paket direkt herunterladen. Sobald Sie es haben, möchten Sie/js/tinymce/plugins/anchor/in Ihre Wordpress-Installation unter/wp-includes/js/tinymce/plugins/verschieben.

Grundsätzlich möchten Sie/wp-includes/js/tinymce/plugins/anchor/in Ihrer Installation haben.

Sobald dies verfügbar ist, müssen Sie eine Funktion hinzufügen, die TinyMCE anweist, nach diesem Plugin zu suchen (entweder in der Datei functions.php Ihres Themas oder einem Plugin hinzugefügt):

function my_mce_external_plugins($plugins) {

    $plugins['anchor'] = '/wp-includes/js/tinymce/plugins/anchor/plugin.min.js';
    return $plugins;
}
add_filter('mce_external_plugins', 'my_mce_external_plugins');

Und jetzt ist es für die Schaltfläche verfügbar, die dem visuellen Editor hinzugefügt werden soll:

function extra_editor_buttons($buttons) {
    $buttons[] = 'anchor';
    $buttons[] = 'superscript';
    $buttons[] = 'subscript';
    return $buttons;
}
add_filter("mce_buttons_2", "extra_editor_buttons");

Et voilà:

Wordpress Visual Editor, Now With Anchor Button

Diese Lösung wurde von dieser verwandten Frage inspiriert, die sich auf die Code-Schaltfläche in TinyMCE bezog, aber genau dieselbe Lösung hatte (das Plugin fehlte). Sowohl Anker- als auch Code-Plug-ins fehlen, und es gibt einen offenen Fehler , um die Dateien hinzuzufügen. Daher wird dies in zukünftigen Versionen möglicherweise kein Problem darstellen.

Hoffentlich kann das auch jemand anderem helfen!

7
Ben Dyer

Dein erster Filter ist nicht korrekt. 'styleselect' gibt dir und generiert ein Dropdown auf dem tinyMCE. Sie können solche Informationen nicht hinzufügen.

Hier ist was zu tun.

Netter Weg:

Erstellen Sie zunächst eine separate Datei mit dem Namen "custom_wp_admin_editor_tinymce.php" (oder was auch immer). Fügen Sie in der function.php Ihre Datei mit dem richtigen Pfad ein, in dem Sie Ihre vorherige Funktion erstellt haben.

// Add the heading dropdown (x6) and add the format dropdown
include_once(TEMPLATEPATH.'/Path to you doc/custom_wp_admin_editor_tinymce.php');

Hier ist Ihre Vorlage "custom_wp_admin_editor_tinymce".

<?php
// Add the heading dropdown (x6) and add the format dropdown
function enable_style_dropdown($buttons) {
    $buttons[] = 'styleselect';
    return $buttons;
}
add_filter("mce_buttons_2", "enable_style_dropdown");


function myformatTinyMCE( $in ) {
    $in['block_formats'] = 'Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6';
    $style_formats = array (
        array( 'title' => 'bold', 'block' => 'p', 'classes' => 'bold' ),
        array( 'title' => 'italic', 'block' => 'p', 'classes' => 'italic' ),    
        array( 'title' => 'link', 'block' => 'p', 'classes' => 'link' ),
        array( 'title' => 'unlink', 'block' => 'p', 'classes' => 'unlink' ),
        array( 'title' => 'bullist', 'block' => 'p', 'classes' => 'bullist' ),
        array( 'title' => 'numlist', 'block' => 'p', 'classes' => 'numlist' ),
        array( 'title' => 'table', 'block' => 'p', 'classes' => 'table' ),
        array( 'title' => 'anchor', 'block' => 'p', 'classes' => 'anchor' )
    );
    $in['style_formats'] = json_encode( $style_formats );
    $in['style_formats_merge'] = false;
    $in['wordpress_adv_hidden'] = false;
    return $in;
}
add_filter( 'tiny_mce_before_init', 'myformatTinyMCE' );
?>

Schmutziger Weg:

Füge den vorherigen Code direkt in function.php ein

0
Romain