3. October 2009

WP µ: Domain Mapping mit WWW Domains

Mit dem Plugin WordPress MU Domain Mapping ist es möglich, verschiedenen Blogs einer WordPres µ Installation eigene Top-Level-Domains zu geben. Das Plugin hat nur einen Nachteil: Standartmäßig unterstützt es keine Subdomains, was besonders beim Wegfallen des WWW bei einigen Webmastern für Ärger sorgt. Mit folgenden Änderungen am Plugin können Sie auch www-Domains anbieten.

Zurzeit bin ich damit beschäftigt, all meine WordPress-Installationen zu einer WordPress µ Installation zu fusionieren. Zunächst klappt das auch ganz gut, nur die Übernahme von Top-Level-Domains ist nicht ganz so einfach. Einzelnen Blogs einzelne Domains zuzuordnen ist zwar mit dem (o.g.) Domain Mapping Plugin problemlos möglich, allerings können keine Adressen mit dem Subdomain-Zusatz WWW eingerichtet werden. Also habe ich mich auf die Suche nach einer Lösung gemacht, die ich letztendlich im englischsprachigen Support gefunden habe.

Der Benutzer ‘cvladan’ stellt eine Lösung vor, bei der er kleine Änderungen an den Dateien des Plugins vornimmt:

Die domain_mapping.php ändert er in Zeile 55 von

$wpdb->escape( preg_replace( "/^www\./", "", $_POST[ 'domain' ] ) );

in:

$wpdb->escape( $_POST[ 'domain' ] );

außerdem für die Anpassung im Backend in Zeile 112 von:

echo "http://www.<input type='text' name='domain' value='' />/";

in:

echo "http://<input type='text' name='domain' value='' />/";

Des weiteren nimmt er eine Änderung in der sunrise.php vor:

$wpdb->escape( preg_replace( "/^www\./", "", $_SERVER[ 'HTTP_HOST' ] ) );

wird in Zeile 10 geändert in:

$wpdb->escape( $_SERVER[ 'HTTP_HOST' ] );

Nun besteht die Möglichkeit, im Administrationsmenü des Plugins (Werkzeuge -> Domain Mapping) auch Subdomains hinzuzufügen.
Um die Domain also mit www anzeigen zu lassen, muss die evt. schon vorhandene Einstellung der Domain ohne www gelöscht werden und die Domain mit www hinzugefügt werden.

SEO-Optimierung vornehmen

Auf die erste Freude, dass der Blog nun mit WWW aufgerufen werden kann, folgt jedoch schnell wiede eine Ernüchterung, denn nun steht ein neues Problem im Raum: Wie gehe ich mit Seitenaufrufen um, die ohne das WWW getätigt werden. Etwa von alten Verweisen von anderen Websites oder allgemein wenn jemand den Artikel ohne WWW aufruft? Die Domain ohne WWW einfach direkt auf die mit WWW umzuleiten ist nicht suchmaschinenfreundlich, da es dann nicht zu einer 301-Weiterleitung kommt. Also habe ich mir folgende Lösung überlegt:

Legen Sie unter dem Hauptverzeichnis Ihrer WordPress-Installation einfach einen Ordner namens 301 an (also auf der selben Ebene mit wp-content, wp-admin usw.). Dort speichern Sie eine index.php mit folgendem Inhalt ab:

<?php
$domain = $_SERVER["SERVER_NAME"];
$pfad = $_SERVER['REQUEST_URI'];
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://www.$domain$pfad");
exit();
?>

Als nächstes verlinken Sie die Domain ohne WWW auf dieses Verzeichnis. Die Domain wird die index.php aufrufen und alle Anfragen suchmaschinenfreundlich per 301-Redirect auf die Adresse mit WWW umleiten.
Dies können Sie bei allen Domains ohne WWW machen, deren Blogs auch mit WWW aufrufbar sein sollen, denn die Datei liest automatisch aus, welche Domain gerade aufgerufen wurde.

Also …
www.example.com verweist auf das Hauptverzeichnis der WPMU-Installation,
example.com verweist auf den Ordner 301 unter dem Verzeichnis der WPMU-Installation

29. September 2009

Eigene Short-URL's für WP-Blogs mit PHP

Es gibt zwei Möglichkeiten, eigene Short-URL’s (kurze Links) auf Basis von PHP für einen WordPress-Blog einzurichten. Folgend werden beide Varianten vorgestellt – zum einen über ein Plugin, zum anderen in einer selbstentwickelten Version.

Variante Nr. 1 – Short URL Plugin

Das Short URL Plugin von Harley Quine nutzt die Domain der WordPress-Installation, um kurze URL’s zu entwerfen. Hierbei wird einfach an die Domain der Pfad /u/%ID/ gehängt, also sieht eine Short-URL zum Beispiel so aus: http://wp-testdomain.de/u/164.

Variante Nr. 2 – PHP-Script für kurze Domain selbst schreiben

Bei größeren Blogs macht die Anschaffung einer eigenen kurzen Domain für Short-URL’s durchaus Sinn, um sich von der Abhängigkeit von Diensten wie bit.ly oder tinyurl.com trennen zu können.
Bei aller Einfachheit dieses Scripts sollte man jedoch die SEO-Tauglichkeit nicht außer Acht lassen, um das Potential der verlinkten Kurz-Links auch nutzen zu können. Dies wird im untenstehenden Script selbstverständlich beachtet.

Sie benötigen also zwei Dateien, die von der kurzen URL auf die richtige URL umleiten. Es handelt sich zum einen um eine .htaccess-Datei, um sich unnötige Zeichen wie Fragezeichen (für die GET-Abfrage in PHP) zu sparen. Die URL-Struktur soll später wie folgt aussehen: http://short-domain.de/256.
Zum anderen benötigen Sie eine PHP-Datei, die auf den richtigen Artikel umleitet.

Tipp: Richten Sie den Ordner mit den beiden Dateien unter Ihrer WordPress-Installation ein, damit Sie später auf die richtigen Permalinks zugreifen können.

Beginnen Sie also mit der .htaccess:
Alle Aufrufe auf die Domain, die über /123 oder /123/ kommen, müssen auf index.php?id=123 umgeleitet werden (123 steht für alle denkbaren Zahlen).

RewriteEngine on
RewriteRule ^([0-9]+)$ index.php?id=$1
RewriteRule ^([0-9]+)/$ index.php?id=$1

Fahren Sie mit der index.php fort:
Zunächst müssen Sie den wp-blog-header aus dem Hauptverzeichnis Ihrer WordPress-Installation ansprechen, um später die Permalinks zu den übergebenen ID’s ausgeben zu können.
Dann überprüfen Sie per IF-Abfrage, ob überhaupt eine ID übergeben wurde, oder ob nur die Domain aufgerufen wurde. In letzterem Fall soll auf die richtige Domain Ihres Blogs umgeleitet werden. Ist tatsächlich eine ID übergeben worden, wird der dazu passende Permalink ermittelt und entsprechend darauf umgeleitet. Alles in allem sieht das so aus:


In der ersten Header-Zeile wird die Umleitung so eingerichtet, dass Suchmaschinen wissen, dass die Inhalte (“permanent”) auf der anderen Adresse zu finden sind. Somit kann das SEO-Potential dieser Links, falls sie irgendwo verlinkt werden, genutzt werden.

Wie erfahre ich die Short-URL eines Blogbeitrags?
Ab sofort kann jeder Blogbeitrag nach dem Schema http://ihre-shorturl.de/$ID$ aufgerufen werden, also zum Beispiel http://r4z.eu/239.
Wie die ID eines Beitrags ist, können Sie zum Beispiel im Theme mit der Funktion get_the_ID() ausgeben lassen. Zum Beispiel mit dieser Zeile innerhalb des Loops der single.php:


Short-URL zu diesem Artikel: http://ihre-shorturl.de/
25. September 2009

WordPress für iPhone & iPod optimieren

Das iPhone wird immer häufiger genutzt, um unterwegs die neuesten Beiträge in abonnierten Blogs zu lesen. Hier einige Tipps, wie Sie Ihren WordPress Blog für Leser und Autoren optimieren können, die die Seite mit einem iPhone aufrufen.

iPhone Themes

Das iPhone kann zwar problemlos komplexe Webdesigns darstellen, das ständige heranzoomen und scrollen beeindrächtigt aber das Lesen. Es gibt Plugins, die iPhone-Nutzern ein gesondertes Theme anzeigen:

  • Das Plugin WPtouch ist die wohl am häufigsten genutzte Variante. Mehr als die Installtion des Plugins ist nicht nötig: Es erkennt eigenständig, ob die Seite von einem iPhone oder iPod aufgerufen wird und lässt das Theme dann auf ein iPhone-freundliches Layout umspringen, das dem einer App gleicht.
  • Das Plugin iWPhone ist eine Alternative zu WPtouch und bietet ähnliche Funktionen, wie zum Beispiel das automatische Verkleinern von zu großen Bildern.

iPhone-Tipps für Admins & Autoren

Das herkömmliche WordPress-Backend ist reichlich ungeeignet für das iPhone. Es gibt zwei Möglichkeiten, trotzdem Artikel von unterwegs zu verfassen:

  • Das WP-Plugin Mobile Admin, das das Design des WP-Admin Bereichs ähnlich wie das WPtouch-Plugin in ein iPhone-optimiertes Theme umwandelt
  • oder die von WordPress angebotene iPhone-App, die sich jedoch auf das Entwerfen, Veröffentlichen und Bearbeiten von Artikeln und Seiten beschränkt.

Was empfehlen andere?

Das Dr. Web Magazin hat die App WPtouch näher betrachtet, der Blog workshop.ch empfiehlt ebenfalls das WPtouch-Plugin. Die Wahl dürfte also recht leicht fallen.

15. June 2009

Koordinaten eines Markers über die Google Maps API in PHP auslesen

Häufig wird die Google Maps API dazu verwendet, um den Benutzer einen Standort auswählen zu lassen, der dann gespeichert werden soll. Da JavaScript Daten nicht sicher bzw. nicht langzeitig speichern kann, muss der ausgewählte Punkt auf der Karte in eine Datenbank gespeichert werden – was mit PHP am einfachsten möglich ist.
Folgend wird erklärt, wie mit Hilfe der Google Maps API ein Programm erstellt werden kann, bei dem der Benutzer über einen sogenannten Marker einen Punkt auf der Karte auswählen kann, der daraufhin per Klick an ein PHP-Programm übermittelt wird. Sie benötigen die Dateien karte.html für die Karte und maps.php zum Auswerten der Benutzereingabe.

Zunächst wird also eine Karte benötigt, die über die Google Maps API generiert werden muss. Hierzu wird ein API-Key benötigt, der hier kostenlos registriert werden kann.
Nachfolgend sehen Sie ein Beispiel für das Grundgerüst der karte.html, das zunächst erstellt werden sollte. Es wird eine auf Deutschland fokussierte Karte angezeigt, die der Benutzer mit den Werkzeugen “Zoom” und “Richtung steuern kann. Vergessen Sie nicht, ‘IHR_API_KEY_HIER’ mit Ihrem API-Key zu ersetzen.

// Überprüfen, ob der Browser des Benutzers mit der Google-Maps API kompatibel ist if (GBrowserIsCompatible()) { // Dem Div-Container mit der ID 'map' die Karte zuweisen var map = new GMap2(document.getElementById("map")); //Der Karte Kontrollelemente (Zoom + Richtung) zuweisen map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); //Die Karte auf Deutschland ausrichten; erst werden die Koordinaten festgelegt, dann der Zoomfaktor von 5 var center = new GLatLng(50.95, 10.28); map.setCenter(center, 5); } else { alert("Leider ist Ihr Browser mit der Google-Maps API nicht kompatibel!"); }

Read the rest of this entry »

30. January 2009

Individuelle Templates für einzelne Kategorien in Wordpress

Craig Tuller, Mitwirkender bei den Revolution Themes, erklärt in einem Artikel, wie einzelne Kategorien individuell gestaltet werden können. Hierbei verzichtet er auf unübersichtlichen Code, der innerhalb einer Datei per IF-Abfrage die Kategorie überprüft, sondern gestaltet für jede Kategorie-ID ein eigenes Template.

Zum Artikel: http://www.revolutiontwo.com/…/template.htm

23. January 2009

Google API testen

Google bietet nun einen Playground an, über den verschiedene Google-API’s ausprobiert werden können. Eine schöne Seite für Entwickler um zu testen, welche API für das eigene Webprojekt vielleicht von Vorteil sein könnte.

Adresse: http://code.google.com/apis/ajax/playground/