Für ein WordPress basiertes Projekt soll eine umfangreiche Kategorie-Liste ansprechend präsentiert werden. Eine hohe Usability soll gewährleistet sein, so dass die Kategorie-Liste eine tragende Rolle bei der Navigation durch die Beiträge einnehmen kann.
Es sind einige Plugins im Umlauf, die die integrierte Kategorie-Liste von WordPress ersetzen und z.B. um aufklappbare Ordner erweitern.
Fold Category List 1.12 – Provides PHP functions to display a folding category tree.
Dieses Tool kommt ohne Widget daher und arbeitet ohne JavaScript. Es wird also zum Aufklappen eine Kategorie immer eine neue Seite geladen.
Genau diesen Nachteil adressiert das JavaScript Animated Collapsing Categories Widget.
Diese Lösung basiert auf JavaScript – somit wird das Neuladen der Seite vermieden. Ausserdem wird ein Widget beigesteuert. Die Kompatibelität zu WordPress 2.2 scheint jedoch noch nicht gewährleistet zu sein. Der Autor schreibt dazu “NOTE Concerning WordPress 2.2: I have not upgraded my blog to 2.2 yet, and cannot speak to the compatibility of this plugin with WP2.2. If you’ve tried it, please share with me your results!” Ich habe auch Probleme mit diesem Tool unter WP2.2 @Apache2, php5 gehabt, so dass ich mich einem anderen Tool zugewendet habe:
Leider ist auch hier die aktuelle WP-dTree Version 2.2 bereits etwas angestaubt (last update 10 July 2006) und wolle auf Anhieb nicht so recht mit WP 2.2 harmonieren.
WP-dTree Version 2.2 setzt auf WP-Scriptaculous auf, was vom Autoren ein Lösungsansatz ist unterschiedliche Scriptaculous Versionen zu handlen und die Installation für Scriptaculous-basierte Widgets zu vereinfachen. Ich denke aber, dass dieser zusätzliche Layer nur mehr Komplexibelität mit sich bringt, die nicht zwingend erforderlich ist. Sehr negativ finde ich auch, dass das Plugin Schreibrechte auf die .htaccess benötigt. Um den Problemen mit WP-Scriptaculous aus dem Weg zu gehen habe ich mich entschlossen auf WP-Scriptaculous zu verzichten.
Damit WP-dTree Version 2.2 auch ohne WP-Scriptaculous eingesetzt werden kann, habe ich an /wp-content/plugins/wp-dtree.php folgende Änderungen durchgeführt:
[PHP]
if ( !$effon ) {
update_option(‘wp_dtree_options’, $wpdtreeopt);
echo “
“;
echo “WP-dTree settings updated…
“;
echo “
“;
} else /* LS change (Verzicht auf WP_Scriptaculous) | if ( get_option(‘wp_scriptaculous_installed’) )*/ {
update_option(‘wp_dtree_options’, $wpdtreeopt);
echo “
“;
echo “WP-dTree settings updated…
“;
echo “Effects are active…
“;
echo “
“;
} /* LS change (Verzicht auf WP_Scriptaculous) | else {
echo “
“;
echo “WP-Scriptaculous plugin was not detected.
“;
echo “Disable the effect and update again or install the plugin.
“;
echo “Update failed…“;
echo “
“;
} */
[/PHP]
In meinem Theme referenziere ich dann die erforderlichen Scriptaculous Dateien, die von WP aus mitgeliefert werden:
[PHP]
[/PHP]
Wünschenswert wäre es übrigens, wenn hier eine AJAX basierte Lösung verfügbar wäre, da somit auch bei umfangreicheren Kategorie-Listen geringere Ladezeiten realisierbar wären.
Last but not least fehlt dem WP-dTree ein Widget so dass es statisch in das Theme eingebunden werden müsste um es zu nutzen. Ich habe mir daher ein einfaches Widget gebaut, welches als Layer um den Funktions-Aufruf für die Kategorie-Liste gelegt wird. Ich habe es lsdtree genannt und sie können es hier downloaden.
Ich konnte es bisher noch nicht testen, weil ich nicht weiß, wohin ich die lsdtree.php kopieren muß :-(
Ich lege Widgets unter /wp-content/plugins/widgets ab; also einfach das ZIP entpacken. Beachte bitte aber, dass WP-dTree nicht mehr mit WP 2.3 kompatibel ist. Der Autor entwickelt das Plugin offensichtlich nicht mehr weiter. Wenn ich Zeit finde, passe ich das Plugin an die WP-API an.
Auf wordpress.org gibt es eine Version namens WP-dTree 3.3.2 die mit WP 2.3 kompatibel ist.
Tja, Dinge können so simpel sein! Herzlichen Dank für die Erklärungen ;-)