WordPress: echten Vollbildmodus aktivieren
Es gab mal eine Zeit, da gab es einen echten Vollbildmodus in WordPress. Der gefiel mir wirklich gut, da ich jemand bin, der gerne im Backend von WordPress schreibt. Ich verbringe Stunden meines Tages in diesem Backend und schreibe Dinge ins Internet, von daher ist es mir da wichtig, dass ich mich wohlfühle. Irgendwann hatte WordPress mal einen echten Vollbildmodus. Ziemlich coole Sache, schließlich wurde alles ausgeblendet, sodass ich mich wie in einem klassischen Editor für störungsfreies Schreiben fühlte.
Doch irgendwann entfernte WordPress diese Neuerung und führte etwas anderes ein. Hier wurde zwar ein störungsfreies Schreiben angeboten, allerdings verschwanden hier nur die Elemente rund um das Texteingabefeld – der Editor blieb in der gleichen Größe wie vorher und an Ort und Stelle. Nett, für mich aber eine Verschlechterung zum echten Vollbildmodus. Nun kann man sich sein WordPress natürlich mit Plugins vollballern, aber im Falle des echten Vollbildmodus in WordPress braucht man dies nicht. Ein paar Zeilen Code in die functions.php sorgen für ein Wunder. Die functions.php befindet sich im Ordner eures aktuellen Themes. Dieses könnt ihr nach erfolgtem Backup mit einem Texteditor öffnen und vor ?> mit folgendem Code versehen:
add_filter('mce_buttons', 'my_mce_buttons');
function my_mce_buttons($buttons) {
$buttons[] = 'fullscreen';
return $buttons;
}
Speichert ihr danach ab, so befindet sich im Editor ein neuer Button, der sich optisch identisch zum anderen „Vollbildmodus-Button“ verhält. Er befindet sich aber nicht rechts außen, sondern direkt in der Symbolleiste. Klickt ihr diesen an, so erhaltet ihr einen Vollbildmodus mit einer Symbolleiste, welcher meiner Ansicht nach um einiges besser ist, als der andere Modus.
Der Code hier kann Konflikte mit anderen Plugins verursachen! Besser wäre das Array nicht zu überschreiben sondern das Element hinzuzufügen:
function my_mce_buttons($buttons) {
array_push($buttons, ‚fullscreen‘);
return $buttons;
}
add_filter(‚mce_buttons‘, ‚my_mce_buttons‘);
Die Kommentarfunktion zerschießt die Anführungszeiche, deswegen hier nochmal: https://gist.github.com/schliflo/6eefebd896e0e78c372d
@schliflo: „Der Code hier kann Konflikte mit anderen Plugins verursachen!“ Hast du da mal Beispiele?
Beispiele an sich habe ich keine aber ich kann erklären warum meine Lösung die richtige ist:
Der Filter mce_buttons liefert ein Array(Liste) an Buttons, die zum Editor hinzugefügt werden sollen. In der Filterfunktion kann man das Array entsprechend verändern. Man weiß aber nicht was sich vorher im Array befindet, da der Filter auch von Plugins oder an anderer Stelle im Theme aufgerufen werden kann. Deshalb ist es wichtig die vorhergehenden Inhalte im Array zu behalten und nur die Benötigte Änderung vorzunehmen.
$buttons[] = ‚fullscreen‘; würde das Array komplett überschreiben und es wäre nur noch der Fullscreen Button drin.
array_push($buttons, ‚fullscreen‘); legt einen neuen Eintrag in der Liste an und ist somit nicht destruktiv.
Wenn man natürlich keine anderen Plugins im Einsatz hat, die diesen Filter nutzen, wirkt sich die Änderung auch nicht anders aus. Zu Problemen kommt es erst wenn Plugins den Filter nutzen – und dann auf die Fehlerursache zu kommen kann schwierig werden.
Die API-Referenz implementiert den Filter übrigens auch mit array_unshift, hängt also einen Eintrag am Anfang des Arrays an. Meine Lösung hängt den Button am Ende mit array_push an.
https://codex.wordpress.org/Plugin_API/Filter_Reference/mce_buttons,_mce_buttons_2,_mce_buttons_3,_mce_buttons_4
Danke, dann aktualisiere ich gleich mal!
@caschy: immer gerne 😉
Im Prinzip hat @scchliflo ja recht, aber $button[]=x ist nur eine Kurzschreibweise für array_push($buttons, x) und sollte sogar schneller sein.
Also brauchst du nichts ändern.
Steht übrigens hier: http://php.net/manual/de/function.array-push.php
Wieder was gelernt 😉 – dann kann’s natürlich so bleiben.
Danke auch für die Info.
Ich gebe CT Recht. Hier muss nichts geändert werden. Allerdings muss ich noch etwas korrigieren! Ich zitiere: „… Dieses könnt ihr nach erfolgtem Backup mit einem Texteditor öffnen und vor ?> mit folgendem Code versehen: …“. Das schließende PHP-Tag (?>) am Ende eine Datei wird heutzutage nichts mehr gesetzt!
😉