Das Thematic Framework

Wenn neue Themes für WordPress erstellen möchte, stößt man früher oder später auf Frameworks, die einem die Arbeit erleichtern sollen, indem sie ein Gerüst vorgeben, in dessen Rahmen man dann agiert – und das man zudem auf möglichst einfache Art und Weise erweitern kann.

Bereits für das bei diesem Blog vorliegende Template hatte ich Thematic benutzt, allerdings war das nur eine vergleichsweise „kleine“ Umsetzung. Für eins meiner anderen Blogs sollte nun endlich mal ein Theme her, das (unter anderem) vier Voraussetzungen erfüllen sollte:

  1. vollständig selbst erstellt statt nur angepasst
  2. Anzeige der Beiträge eines Custom Post Types über ein eigenes Menü
  3. Widgetpositionen nach meinem Gusto
  4. flexible Sidebar mit einer und zwei Spalten

Weiterlesen

WordPress: „Forgot The Category“ für Custom Post Types

Ich erweitere gerade ein relativ umfangreiches Blog um einen Custom Post Type, um neben News auch Artikel darstellen und beide Beitragsvarianten unabhängig voneinander layouten zu können. Zudem wollte ich für die Artikel nicht die Standardkategorien nutzen, sondern neue Taxonomien.

Die Einrichtung des entsprechenden Custom Post Type war mit dem Plugin „Custom Post Type UI“ ein Kinderspiel (die Erstellung des Themes unter Einbindung der CPTs ist es nicht, aber dazu ein andermal).

Beim Test stieß ich dann allerdings auf ein unerwartetes Problem: ich habe das Plugin „Forgot The Category“ installiert, das mich darauf hinweist, eine Kategorie anzugeben, was ich schonmal vergessen hatte und das ist ärgerlich, wenn man es nicht merkt. Mit den bereits vorhandenen Beiträgen klappt das ohne Probleme, nur bei der selbst eingerichteten Taxonomie für den CPT zickte das Plugin und bemängelte nicht gewählte Kategorien.

Ein schneller Blick ins Plugin und via Firebug in den Quellcode der Kategorie-Box im WP-Backend zeigte mir schnell, wo das Problem lag, aber auch wie die Lösung auszusehen hatte:

Der Quelltext des Plugins (Auszug):

class DC_ForgotTheCategory {
  function AddToEditPage() {
    
  }
}

add_action("edit_form_advanced", array("DC_ForgotTheCategory", "AddToEditPage"));

In Zeile fünf entdeckt man den jQuery-Selektor

ul#categorychecklist

das Element mit der ID #categorychecklist gibt es allerdings in der Liste der Custom Taxonomy nicht. Der Quelltext zeigte mir aber dass dasselbe UL-Element auch eine Klasse namens

.categorychecklist

besaß und die war auch in der Liste der selbsterstellen Taxonomie vorhanden. Der Rest war einfach, Zeile fünf musste nur in

if ( jQuery("ul.categorychecklist input:checkbox:checked").length < 1 ) {

geändert werden (Raute gegen Punkt austauschen), und schon wurden korrekt mit einem Haken versehene Taxonomie-Begriffe nicht mehr bemängelt.

Quicktipp: WordPress 3.1 – Adminbar deaktivieren

Persönlich halte ich die neue Adminbar, die WordPress seit der Version 3.1 bietet, ja für ein sehr nützliches neues Feature, andere scheinen aber nicht so glücklich damit zu sein.

Man kann sie aber relativ einfach deaktivieren – entweder in der functions.php:

if (!is_admin() && !current_user_can('add_users')){
	wp_deregister_script( 'admin-bar' );
	wp_deregister_style( 'admin-bar' );
	remove_action('wp_footer','wp_admin_bar_render',1000);
}

Oder in der header.php, hier gehört der Code vor <?php wp_head() ?>

if (!current_user_can('add_users')){
        wp_deregister_script( 'admin-bar' );
        wp_deregister_style( 'admin-bar' );
        remove_action('wp_footer','wp_admin_bar_render',1000);
}

Eigentlich wäre es sinnvoll, wenn das via Option im Backend geschehen könnte, ich würde mal vermuten wollen, dass das aufgrund der geübten Kritik an diesem neuen Feature bald implementiert werden wird

WordPress 3.1 erschienen

Ja, es ist schon ein paar Tage her und aufgrund diverser Meldungen über Probleme hatte ich etwas Bedenken, Version 3.1 der Blogsoftware WordPress zu installieren, aber die waren zumindest bei meiner Haupt-Installation auf PhantaNews grundlos, das Update funktionierte weitest gehend ohne Schluckauf – allerdings ist mir im Richtext-Editor eine selbstdefinierte Klasse abhanden gekommen, nach der muss ich noch forschen.

Viele Neuerungen spielen sich unter der Haube ab, aber auf drei neue Features möchte ich kurz eingehen, da sie die tägliche Arbeit mit dem System in Sachen Ergonomie doch erheblich vereinfachen. Zwei davon haben mit der Benutzeroberfläche  für Verlinkungen zu tun.

Zum einen hat man sich von den Dropdowns für „Link in neuem Fenster öffnen“ verabschiedet und diese Option nun sehr viel sinnvoller durch eine Checkbox ersetzt, was Workflow-Geschwindigkeit und Bequemlichkeit  erhöht.

Zum anderen, und das ist ein echter Clou für Blogs mit vielen Artikeln, bei denen des Öfteren mal auf ältere Inhalte verlinkt werden soll, bietet das Link-UI nun eine Suchfunktion, über die man in den Inhalten des Blogs suchen kann. Per Ajax wird eine Liste passender Artikel präsentiert, von denen man mittels Klick den gewünschten auswählen kann. Die URL wird automatisch ins Link-Eingabefeld übernommen, der Titel des Beitrags ins Titelfeld des Links.

Großartig! Bisher musste ich ein neues Fenster öffnen, die WordPress-Suche nutzen und dann die Adresse manuell via Copy & Paste ins Linkeingabefeld einfügen. Das geht jetzt um Längen einfacher und vor allem viel schneller.

Dritte Neuerung ist die Adminbar, die angemeldeten Nutzern ab sofort am oberen Rand des Blogs angezeigt wird. Damit konnte ich eine Erweiterung, die mir bisher etwas Ähnliches bot deinstallieren. Warum viele Nutzer dieses überaus nützliche neue Feature ablehnen ist mir völlig unverständlich. Ich muss mich nun mal darin einlesen, wie man diese Adminbar erweitern kann.

Für die Neuerungen in WP 3.1 gibt’s von mir bisher ein ganz klares „Daumen hoch“!

WordPress-Logo Copyright Automattic

QuickTip: anderer Font im WordPress-Editor

Der ein oder andere mag sich vielleicht für die Textdarstellung im Editor der Blogsoftware WordPress einen anderen als den voreingestellten Zeichensatz wünschen. Das ist einfach gemacht: wie so oft muss man nur ein wenig Code in die functions.php des verwendeten Themes einfügen:

function change_editor_font() {
   echo "";
}
add_action("admin_print_styles", "change_editor_font");

Erschienen: Joomla 1.6

Drei Jahre hat es seit dem letzten „großen“ Update 1.5 gedauert, bis eine neue Version des freien Web-CMS Joomla! erschienen ist, denn jetzt veröffentlichte die Community die Version 1.6.

Maßgeblichste Änderung dürfte neben der Basisvoraussetzung PHP 5.2.x wohl die deutlich erweiterte Nutzerverwaltung (ACL) sein, einer der Punkte, die unter Joomla! aufgrund der Inflexibilität bisher immer zu Problemen geführt haben. Die neue ACL mit Gruppen ermöglicht eine deutlich feiner granulierte Zugangssteuerung der Nutzer als bisher. Zu den bereits vorhandenen kann der Admin weitere Zugriffs-Ebenen definieren.

Weiterhin wurde Legacy-Code aus dem Core entfernt, was zu einer ca. 30-prozentigen Verringerung des Software-Umfangs geführt hat. Die Einbindung (und Anzeige) mehrerer Sprachen wurde deutlich verbessert, zudem können Extensions ab sofort direkt im Backend aktualisiert werden, wenn neue Versionen vorliegen.

Die meisten der kolportierten „hunderten neuen Funktionen“ wie beispielsweise verschachtelte Kategorien sind allerdings eher unter der Haube zu finden, rein optisch hat sich wenig getan, so dass sich auch Nutzer von 1.5 relativ problemlos zurecht finden sollten.

Wer sich die neue Version ansehen möchte, dem wird ein Startpaket angeboten, zudem gibt es einen extra eingerichteten Youtube-Channel mit Anleitungen, Hinweise auf Neuerungen und Tips zum Update.

Auch die neue Joomla!-Version werde ich natürlich mal testen, auch wenn meine bisherigen Erfahrungen mit dem System nicht sehr positiv waren… Aber man soll ja keine Vorurteile pflegen… :o)

QuickTip: Schneller Zugriff auf WordPress-Optionen

Die meisten dürften es nicht wissen, auch für mich war das neu: Es gibt eine Möglichkeit, schnell auf diverse Optionen einer WordPress-Installation zugreifen zu können, um „mal eben“ was zu ändern. Damit hat man zwar nicht Zugriff auf alle Parameter (diejenigen die serialisiert in der Datenbank liegen, bleiben außen vor), dennoch kann das im täglichen Betrieb sehr hilfreich sein.

Man meldet sich als Admin an und ruft dann folgende URL auf:

http://url-der-installation.tld/wp-admin/options.php

Es erscheint eine Seite, die die Parameter aus der Options-Tabelle auflistet und über Texteingabefelder die Möglichkeit zum Ändern eröffnet. Selbstverständlich sollte man wissen, was man tut!

Veröffentlicht: Drupal 7

Soeben wurde nach drei Jahren Entwicklungszeit die Version 7.0 des freien Content Management Systems Drupal veröffentlicht. Sie soll einfacher zu handhaben sein und das sowohl für Benutzer wie für Entwickler.

Ungefähr 50 Zusatzmodule gehören ab sofort zum Standardumfang von Drupal, beispielsweise Funktionen für die Bildbearbeitung. Weiterhin wurden die Navigation und das Hinzufügen und Bearbeiten von inhalten erheblich vereinfacht.
Auch Zusatzmodule müssen nicht mehr wie früher via FTP auf den Server hochgeladen werden, sondern lassen sich jetzt im Backend mit einem Klick installieren.
Die unter dem Namen Content Construction Kit (CCK) bekannte Erweiterung zum Hinzufügen von Feldern wurde in einer erweiterten Form in den Drupal-Kern integriert und heißt jetzt „Field Module“.

Die Anbindung an Datenbanken erfolgt ab sofort über eine neue Datenbankschnittstelle auf Basis von PHP Data Objects (PDO). Unterstützt werden MySQL ab 5.0.15, PostgreSQL ab Version 8.3 und SQLite 3.x, weitere Datenbanken können über Zusatzmodule angesprochen werden.

Weitere neue Funktionen sind unter anderem ein Dashbord ähnlich wie bei WordPress, eine Admin-Toolbar, vertikale Tabs, Shortcut-Buttons sowie die Unterstützung systemweiter semantischer Metadaten (RDF). Ungefähr 800 Drupal-Module stehen zum Start für die Version 7 bereit, weitere befinden sich im Portierungsprozess.

Ich werde gleich mal eine lokale Installation vornehmen und testen.

Edit: Aha – Drupal benötigt mindestens PHP 5.2.4…

Edit 2: Der erste Blick sieht gut aus. Das Backend ist deutlich „unklobiger“ als vorher, Installation von Modulen und Themes fluppt prima, ebenso die Installation einer Übersetzung. Bislang: Daumen hoch!

Neu: WordPress Redirect-Service bei Umzug

Viele Blogger haben ihr Blog auf wordpress.com gehostet, weil das insbesondere für technisch weniger Versierte eine einfache Lösung ist, um schnell ein Blog online zu bekommen und es zu inhaltlich pflegen, ohne sich große Gedanken über Updates oder andere technische Hintergründe machen zu müssen.

Möglicherweise möchte der ein oder andere dann aber irgendwann das Blog doch auf einen eigenen Hostingspace oder Server verlegen, um die größere Flexibilität nutzen zu können. Mit der Übertragung der Inhalte gingen dann bisher die Platzierungen bei den Suchmaschinen, allen voran natürlich Google, verloren.

Doch das hat jetzt ein Ende. WordPress.com bietet Wechslern ab sofort einen Umleitungsservice, durch den die Platzierungen in den Suchmaschinen erhalten bleiben, es wird ein „301 Redirect“ gesetzt. Das Feature nennt sich „Offsite Redirect Upgrade„, mittels eines einfachen Eintrags im Adminbereich des bisherigen Blogs auf wordpress.com werden die Anfragen dann ab sofort auf die neue Domain umgeleitet. Damit das richtig funktioniert muss natürlich dort ebenfalls WordPress eingesetzt werden (wobei andere Lösungen natürlich denkbar sind) und dieselbe URL- bzw. Permalink-Struktur Verwendung finden, aber das ist ja nicht schwer zu bewerkstelligen.

Weitere Informationen findet man in einem (englischen) Support-Dokument von wordpress.com.

WordPress-Logo Copyright Automattic

WordPress-Snippet: Links in Kommentaren nicht klickbar

Wer mit WordPress arbeitet, der weiß, dass in Kommentaren eingefügte Links automatisch so umgewandelt werden, dass man sie anklicken und dadurch auf die zugehörige Webseite kommen kann. Man weiß dann aber ganz sicher auch, dass schlaue Zeitgenossen versuchen, einem Spam-Links unterzujubeln.

Man kann das automatisierte Umwandeln durch einen einfachen Eintrag in der functions.php unterbinden:

remove_filter('comment_text', 'make_clickable', 9);

Gleich nach dem Speichern wird man feststellen, dass die Links als reiner Text noch vorhanden sind, sie aber nicht mehr automatisch „verlinkt“ werden.