Dienstag, 23. Januar 2007

Entwickler, Anwender, WP 2.1

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!” ;-)

2 Kommentare

  1. Alexander Trust

    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ß

  2. Benjamin

    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

Kommentar schreiben

SEOs brauchen es erst gar nicht probieren, Kommentare mit dem Zweck der kommerziellen Eigenwerbung (Links zu Shops, Firmen, o.ä.) sowie sinnloser Schrott werden ebenfalls als Spam markiert. Wenn ihr etwas völlig anderes beisteuern wollt, dann bitte über den normalen Kontakt.