Sidebar
ein-/ausblenden

HTML Reiter in WordPress deaktivieren

Plugin für WordPress SEO

Anzeige

Im Gegensatz zum visuellen Editor in WordPress, kann man den HTML-Editor nicht deaktivieren. Dazu sieht WordPress keine Usereinstellung oder auch eine globale Option vor. Ebenso gibt es keinen Hook, wodurch man den Reiter HTML am Editor von Beiträgen uns Seiten deaktivieren kann.

Es gibt aber Anwender, die dieses Reiter nicht benötigen und für die man dies eventuell übergreifend deaktivieren möchte. Daher zeige ich mal eine Lösung, wie man den Editor trotzdem nicht mehr einfach nutzen kann.
Alternativ kann man das Plugin Adminimize nutzen, welches diese Möglichkeit pro Rolle bietet, einfach in den Einstellungen setzen.

HTML Editor deaktiviert

Da es keinen Hook oder eine Option gibt, muss man den Bereich via CSS ausblenden. Dies hat den Nachteil, dass zwar der Reiter nicht mehr zu sehen ist; wenn aber der Cookie oder ein Plugin sagen, HTML aktivieren, dann hat der Editor ein Problem uns zeigt entweder alle beiden Editoren-Leisten gleichzeitig, oder gar keine Buttons. Man muss daher den Editor explizit setzen.

Im ersten Schritt blenden wir via CSS den Reiter und die Buttons des HTML-Editors aus. Diese Stylesheet muss im Admin geladen werden, dabei kann man verschiedene Wege gehen: entweder in den head schreiben (Hook admin_head) oder ein externes CSS via Funktion wp_enqueue_style() laden.


#editor-toolbar #edButtonHTML, #quicktags {
       display: none;
}

Im weiteren Schritt muss nun der Standard-Editor gesetzt werden, dazu dient ein Hook und eine Funktion, die den Standard auf den Wert tinymce setzt.


function my_default_editor() {
	$r = 'tinymce'; // html or tinymce
	return $r;
}
add_filter( 'wp_default_editor', 'my_default_editor' );

Alternativ eine kurze Schreibweise für die Implementierung in Plugins oder Themes.


add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );

18 Kommentare zu „HTML Reiter in WordPress deaktivieren“

  1. 1
    Kommentar von Dirk

    Aber wer will ernsthaft freiwillig ausschließlich mit TinyMCE (a.k.a. DIE PEST) arbeiten? Ich bin ganz froh, dass man das Teil deaktivieren kann (schreibe meine Blogposts sowieso immer in Vim vor und Copy&Paste das fertige Zeug in den Editor von WordPress).

    Ich hoffe ja, dass im Zuge der Modularisierung von WordPress 3 auch TinyMCE ein Modul wird (das ich dann aus meinen WordPress-Installationen schmeißen kann).

  2. 2
    Kommentar von Eatofid

    Hui, etwas kompliziert für einen Laien wie mich, aber nach sowas habe ich immer schon gesucht. Nun muß ich nur gucken, ob ich das auch hinbekomm. :-)

  3. 3
    Kommentar von Frank Bültge

    @Eatofid: Alternativ nimmst du das Plugin Adminimize, welches diese Option einfach via Klick frei gibt.

  4. 4
    Kommentar von Michael Oeser

    Hmmm...ich hab mal ausnahmsweise eine Kritik loszuwerden. Ich sehe da leider echt keinen Nutzen. Wenn man den HTML Editor nicht nutzen will, kann man es ja enfach lassen. Kann ja nix passieren. Im Gegensatz zum WYSIWYG Editor, der mir evtl. im Beitrag platzierten Code zerballert.

    Und einfach nur unsichtbar machen, finde ich dann irgendwie sinnlos. Geladen wird es dann trotzdem, spart also auch nichts. Sorry Frank, aber für mich ist das leider eher eine Krücke, als ein Workaround.

  5. 5
    Kommentar von Frank Bültge

    @Michael: Leider scheinen das viele Nutzer nicht so zu sehen, denn sie wollen explizit die Möglichkeit nicht; daher kam die Frage auf. Der "normale" Autor versteht HTML nicht und kann mit dem Inhalt des Reiter nichts anfangen. Für mich ist Usability auch nur das zu sehen, was ich brauche.

  6. 6
    Kommentar von Michael Oeser

    Ok, vielleicht bin ich schon wieder mal betriebsblind. Manchmal fällt es mir schwer sowas nachzuvollziehen ;-)

  7. 7
    Kommentar von Karl

    Sicherlich ist dies die falsche Stelle dafür - mir viel nur gerade auf: Ich hatte mit Adminimize Menüpunkte und Elemente aus der Ansicht gestrichen. Dummerweise lassen sich die Änderungen nun nicht mehr rückgängig machen.

    Ich hatte die Einstellungen aus Adminimize heraus gelöscht, gereloadet und verblieb ohne Ergebnis. Auch nach Update (Einstellungen wurden vor Upgrade gelöscht) blieben die ausgeblendeten Elemente ausgeblendet.

    Gibt es Empfehlungen an welcher Stelle anzusetzen sei? An welcher Stelle kann ich Einstellungen von Adminimizer händisch in der Datenbank ausgleichen? Hab ich was falsch gemacht?

  8. 8
    Kommentar von Frank Bültge

    @Karl: Die Einstellungen sind korrekt, ebenso sind die Bereiche wieder da, du musst sie aber im Anschluss über die eigene Optionen pro Seite im Backend wieder sichtbar machen, denn WP speichert diese pro User ab und wenn man die einmal weg hatte, eben in dem Fall via Plugin Adminimize, dann sind die Checkboxen dort in den Einstellungen nicht aktiv, du findest diese immer oben am rechten Rand pro Seite des Backend, wenn es Meta Boxen gibt.

  9. 9
    Kommentar von Frank Bültge

    Für mich persönlich macht die Deaktivierung wenig Sinn. Allerdings habe ich ein paar Kunden, wo es durchaus Sinn macht HTML zu deaktivieren. Danke für den Tipp.

  10. 10
    Kommentar von suldan

    Für ungeübte Redakteure macht es absolut Sinn das Angebot an Verwirrung zu reduzieren. Dazu gehört nicht nur der HTML-Button. Leider ist mir noch kein Editor mit einem Administratoreninterface, wo man Funktionen aktivieren oder deaktivieren könnte vor die Nase gekommen. Ich habe mal das Tiny MCE für einen Kunden konfiguriert (Buttons deaktiviert) auf einem Typolightsystem. Ist eine Weile her - habe wohl vergessen wie und wo, aber es geht.
    Mittels CSS verstecken ist dann schon eher eine Notlösung ;o)

  11. 11
    Kommentar von Ralf

    Mit CSS entfernen? Hast du gesoffen?? :D

    Wie wäre es denn mit:
    jQuery(document).ready(function($) {
    $("#edButtonHTML").remove();
    });

    Als JS-Script via Hook in den Footer packen und den Link (aka. Tab) einfach aus dem DOM entfernen. Zusätzlich würde ich den Link "Visuell" noch in einfachen Text umwandeln, da es sonst ein Link bleibt und für Verwirrung sorgen könnte (man kann drauf klicken, passiert aber nix).

    Quick&Dirty als Pluginversion:

    
    <?php
    /*
    Plugin Name: removeHTMLtab
    Plugin URI: 
    Description: Entfernt den HTML-Tab im TinyMCE-Editor
    Version: 0.1
    Author: Ralf Albert
    Author URI:
    */
    
    function removeHTMLtab(){
    echo '<script "type=text/javascript"> jQuery(document).ready(function($) {$("#edButtonHTML").remove();});</script>';
    }
    add_action('admin_footer','removeHTMLtab');
    ?>
    
  12. 12
    Kommentar von Frank Bültge

    @Ralf: ja, die Lösung war mir schon lieber, aber es sollte mit CSS gehen und bei eventuell ausgefallenem JS auch klappen; auch wenn das WP Backend fast JS voraus setzt.

  13. 13
    Kommentar von Ralf

    Du hast aber schon mal JS auf der Beitrags-Seite deaktiviert, oder? Also mit ausgefallenem JS brauchst du dir wirklich keine Gedanken mehr über vorhandene oder nicht vorhandene Reiter machen.
    Ich weiß zwar nicht warum jemand das CSS deaktivieren sollte, jedoch sind beim deaktivierten/ausgefallenem CSS die Reiter wieder da.

    Mit CSS kann man halt nur verstecken. Nicht deaktivieren oder entfernen.

  14. 14
    Kommentar von Frank Bültge

    @Ralf: sehe ich auch so, betone ich auch immer mit Adminimize, dass man nur versteckt.

  15. 15
    Kommentar von Webdesign aus Rosenheim

    Danke für Diesen Post!
    Wir haben länger nach dieser Lösung für einen Kunden gesucht. Hätte ich lieber gleich mal hier vorbei geschaut ;-)
    Grüße aus Rosenheim

  16. 16
    Kommentar von Feuerspucker

    Wieder mal eine tolle Anleitung und Hilfe - Man lernt ja immer wieder was Neues. Super Post!

  17. 17
    Kommentar von Daniel Schilling

    Ich arbeite ausschließlich im HTML Editor. Das ist zwar eine sehr gute Anleitung, wie man den Button ausschalten kann, aber ist das wirklich nötig? Wenn man ihn dann im Notfall doch braucht ist er nicht da. ;)

  18. 18
    Kommentar von Beceri Oyunları

    Man lernt ja immer wieder was Neues. Super Post!

Kommentare sind geschlossen.