Kein fehlerfreier Themeswitcher gefunden

Da erstmals eine Leserin eine Präferenz für ein bestimmtes WordPress Theme geäussert hatte, kam mir die Idee, wie in vergangenen Zeiten (2006) noch mal einen Themeswitcher zu installieren, so dass der Leser unter den von mir gesetzten Themes eins raussuchen könnte was ihm besonders gefällt, oder selber testen könnte; im Idealfall würde er mir vielleicht sogar Feedback geben?

Die Suche nach einem zuverlässigen Themeswitcherplugin gestaltete sich schwieriger als erwartet, und dass ich keinen fand kommt meines Erachtens nach nicht von Ungefähr: ich glaube dass die WordPressgemeinschaft die Idee des Themeswitchings nicht mehr unterstützt (weil es zu selten gefragt wird)?

Der Theme Switcher von Ryan Boren

Zunächst versuchte ich es mit diesem klassischem Schalter1.
Zunächst einmal stiess ich auf die nicht gerade ermutigende Mitteilung, dass das Plugin seit 2 Jahren nicht mehr gewartet wurde. Das muss nichts heissen, viele funktionieren auch nach Jahren ohne Update noch ganz zuverlässig, zumindest wenn ihr Code keinerlei veraltete Funktionen aufruft. Da sich bei den Widgets aber in den letzten Jahren viel getan hat, war ich mir nicht ganz sicher.
Erstaunlicherweise funktionierte es dann aber doch recht gut, ich verwarf seinen Einsatz aber dennoch aus den gleichen Gründen wie 2006, als ich es schon mal eingesetzt hatte. Lassen wir Ryan selber zu Wort kommen:

To use, add the “Theme Switcher” widget to your sidebar,
or call wp_theme_switcher() directly, like so:

<li>Themes:

</li>

D.h. um es einzusetzen muss JEDES Theme das auswählbar sein soll, entweder mit den entsprechenden Widget ausgestattet sein, oder wie 2006 als es noch keine widgets gab, in der Datei sidebar.php entsprechend bearbeitet werden. Tut der Websitebetreiber das auch nur bei einem Layout nicht und der Leser wählt genau dieses aus, kann er nicht mehr zu dem alten zurückschalten. Also, er kann schon, in dem er die Cookies löscht, aber weiss jeder das? Will jeder das?
Das Plugin ist nur dann einsetzbar, wenn ich alle meine z.Z. 15 Layouts entsprechend mit Widgets versehe. Das artete zu schnell in Arbeit aus und ich wand mich einem anderen Plugin zu, das mehr versprach:

MDC Theme Switcher von Nazmul Ahsan

Der MDC Theme Switcher2 bot das was ich suchte: Ich brauchte nicht erst die Widgets zu präparieren, sondern man kann auf einer bestimmten Seite den shortcode
[mdc_theme_swicher] plazieren und der erzeugt dann die Liste zur Auswahl.


Beim ersten Versuch stürzte, zu meiner grossen Bestürzung der ganze Auftritt erst mal ab, WordPress konnte im Frontend nur noch eine leere Seite anzeigen.

Warum? Man muss mdc mitteilen, welche Themes beim Switcher mitspielen dürfen. Weil ich ihn gerade erst installiert hatte wusste die Datenbank noch nichts drüber. Im Prinzip auch eine gute Sache, denn dann kann ich selber entscheiden, welche Themes ich noch testen will und welche ich für die Leser schon freigebe.

Bei einer späteren Version musste man auch noch das Defaulttheme angeben, sonst bekommt man denselben Fehler wie oben. Eigentlich ein Unding, denn unter “Appearance” legt der Administrator doch bereits das Standardtheme fest, was von MDC aber überschrieben wird.
Somit kommen wir zum nächsten Bug: wenn ich eingeloggt bin, und mit dem MDC Switcher das Theme wechsele, dann wird ein anderes Standardtheme festgelegt und schlimmer noch: bei jedem Wechsel werden die Widgets zurückgesetzt. Das Plugin funktioniert also völlig anders als das von Ryan. Diese Eingriffe in die Datenbank lassen mir das Plugin suspekt erscheinen. Es kann und darf nicht sein, dass irgendein Leser, ob nichtsahnend oder schlimmer noch absichtsvoll meine Einstellungen durch einfachen Besuch meiner Seiten ändern kann. Also lasse ich das erst mal wieder.

  1. Plugin Theme Switcher von Ryan Boren, erhältlich unter http://wordpress.org/extend/plugins/theme-switcher/ []
  2. Seite für das Plugin von im Repository von WordPress.org: https://wordpress.org/plugins/mdc-theme-switcher/ []

Leave a Reply

Your email address will not be published. Required fields are marked *