WordPress 2.1 wurde heute veröffentlicht, falls man es wirklich noch nicht mitbekommen haben sollte (solche Meldungen kleistern einem ja immer ordentlich den Newsreader zu…). Unter der Haube hat sich einiges getan, was sowohl Anwender als auch Entwickler betrifft.
Relevant für Anwender
Einige User berichten von einer Inkompatibilität zwischen WordPress 2.1 und dem Plugin Subscribe to Comments (obwohl es in der Kompatiblitätsliste als in Ordnung angegeben ist). Abhilfe schafft die neuste Version aus dem SVN.
Alexander Trust berichtet von einem Problem mit dem WYSIWYG-Editor und Firefox, nachzulesen hier. Anscheinend dreht es sich dabei um die deutsche Version (von was? Firefox? WordPress?), so dass er auch gleich eine Lösung anbietet.
Behandlung von Custom Fields
Sicherlich interessanter ist für einige Theme-Bastler und Plugin-Entwickler, dass die Custom Fields nun etwas anders behandelt werden, genauer gesagt die Abfrage selbiger. Beispielsweise habe ich für normale Beiträge einen Anreißer (der wirklich große Text) bzw. bei den Sidenotes den Namen des Bildes, das angezeigt werden soll, in Custom Fields gespeichert. Bisher war es mir ohne weiteres möglich, über
$post_meta_cache[$post->ID]['customname'][0]
an diese Information zu kommen. $post_meta_cache wurde so oder so erzeugt, so dass auch kein zusätzlicher Speicher in Anspruch genommen wird.
Diese Methode funktioniert nicht mehr.
Anscheinend wird das Array beim Aufruf von WordPress nicht mehr erzeugt. Abhilfe erhält man über die Funktion get_post_meta
get_post_meta($post->ID,'customname',TRUE)
Damit erhalte ich den ersten Wert (als Variable, nicht als Array!) von customname. Alles weitere siehe WordPress Codex
Behandlung von Pages
Pages können jetzt auch die Status’ “Private”,”Draft” und “Publish” haben, genau wie Posts. Um zukünftig unterscheiden zu können, ob ein Beitrag ein “Post” oder eine “Page” ist, wurde in der Tabelle wp_posts ein weiteres Feld post_type mit den Werten ‘post’ oder ‘page’ eingeführt. Die internen Funktionen von WordPress berücksichtigen dieses Feld natürlich, wenn man sich Beiträge aber z.B. per $wpdb->get_results holt, muss man dieses beachten.
$wpdb->get_results("SELECT * FROM $wpdb->posts
WHERE post_status = 'publish'
LIMIT 0,10");
Dieser Code hat bisher die letzten 10 Beiträge aus der Datenbank geholt, jetzt bezieht sich das auch auf Pages. Um also wie gewohnt nur Beiträge zu erhalten, muss die Abfrage wie folgt geändert werden:
$wpdb->get_results("SELECT * FROM $wpdb->posts
WHERE post_status = 'publish'
AND post_type = 'post'
LIMIT 0,10");
Mal sehen was ich noch so an Neuerungen finde, die einem den Spaß verderben könnten. Fands auf jeden Fall sinnvoller, sowas zu schreiben, als nur ein weiteres Posting “WordPress 2.1 ist erschienen!” ;-)
Vielen Dank für die Erwähnung. Ja, es ist die deutsche Version von Firefox gemeint, weil es ja von WP 2.1 noch keine deutsche Version gibt. Doch habe ich letzte nie genutzt. Für’s nächste Mal werd ich mir hinter die Löffel schreiben, das etwas expliziter zu formulieren.
Lieben Gruß
Die Behandlung der Custom fields hat sich anscheinend auch unter WP 2.0.1 geändert. Dein Schnipsel funktioniert jedenfalls.
Im Übrigen, danke für den Post