Das Putzlowitsch Test- und SEO-Blog

WordPress Shortlink für Bilder

Seit es Twitter und anderen Kurznachrichtendienste gibt, sind kurze URLs sehr wichtig geworden. Bei Wordperess sind Shortlinks schon lange quasi „ab Werk“ eingebaut. Man muße einfach nur die Artikel-ID als Parameter p mit der Seite aufrufen (putzlowitsch.de/?p=1649).

Das funktioniert auch für Attachments wie Bilder, Sounds und sonstige Dateien, die über WordPress hochgeladen und mit der Mediathek verwaltet werden. Allerdings wird hier nicht auf die Datei selbst, sondern auf die Attachment-Seite weitergeleitet (putzlowitsch.de/?p=1650).

Um nun auch direkt auf Dateien shortlinken zu können, sind nur ein paar Zeilen PHP-Code notwendig. Ich habe dafür als Alternative zum Parameter p wie Post den neuen Parameter a wie Attachment eingeführt. Der Aufruf erfolgt dann mit putzlowitsch.de/?a=1650. Die Funktionen habe ich in ein kleines Plugin gepackt, wem zu viele Plugins nicht gefallen, kann auch einfach den Quelltext in der Datei functions.php seines Themes einfügen:

function plw123as_redirect_canonical( $redirect_url, $requested_url ) {
	global $wp_query;
	
	if( isset($wp_query->query_vars['a']) ) {
		$id = intval( $wp_query->query_vars['a'] );
		$url = wp_get_attachment_url( $id );
		if( '' == $url ) {
			$wp_query->set_404();
			status_header( 404 );
			$redirect_url = false;	
		}
		else
			$redirect_url = $url;	
	}
	return $redirect_url;
}

function plw123as_init() {
 global $wp;

 // Variable bekannt machen
 $wp->add_query_var( 'a' );
 add_filter( 'redirect_canonical', 'plw123as_redirect_canonical', 10, 2 );
}
add_action( 'init', 'plw123as_init' );

 
Download: 123 Attachment Shortlink 0.10

Ich wurde übrigens so ein bißchen von der Statusupdate mit Bildern-Sache zu diesem kleinen PHP-Code angeregt. Kann ja nicht sein, das ich für direkte Links auf Bilder elendig lange URLs verwenden muß. :-)

Nachtrag 16:30 Uhr
Google-Statusupdates - Bilder kein Redirect

Leider wertet die Googlesuche nach Statusupdates eine Weiterleitung auf ein Bild nicht als Bild selbst. Die Bild-URL wird zwar aufgelöst, das Bild aber nicht angezeigt. Schade! Vielleicht ändert sich das ja noch…

Nachtrag 17:45 Uhr
Hmmm, scheint doch mit den weitergeleiteten Bildern bei Google-Statusupdates zu funktionieren, aber nicht immer oder nur manchmal, keine Ahnung…

Keine Kommentare »

WordPress 3.0 – automatisches Update bei 1&1 ohne Problem

Das neue WordPress 3.0 ist erschienen. Herausragende Neuerung ist die neue Multisite-Funktion, gewissermaßen die Integration von WordPress-MU in das „normale“ WordPress. Zudem gab es den Abschied vom lange bewährten Standard-Theme „Kubrick“. Neu als Standardtheme ist nun „TwentyTen“ an Board.

Brötchen mit WP 3.0 RC als Test

Seit ein paar Wochen habe ich die RC-Versionen von WordPress 3.0 bereits für meine Brötchen-Bilder im Testbetrieb zu laufen. Dabei gab es keine Probleme.

Für meine „Produktions-Systeme“ Putzlowitsch und Schnurpsel will ich aber nicht gleich auf WP 3.0 umsteigen, das ist mir zu heikel. Da stehen zunächst lokale Tests an.

Automatisches Update bei 1&1 erfolgreich

Mit einer WordPress 2.9.1 Testinstallation bei 1&1 habe ich hingegen gleich mal ein automatisches Update angestoßen. Das hat einwandfrei funktioniert. Allerdings habe ich dort nur eine handvoll einfacher Plugins aus eigenem Hause installiert. Insofern ist das kein echter Produktionstest.

Der (angezeigte) Speicherbedarf ist von 11,5 auf 13,5 MB im Frontend und von 14 auf 16,5 MB im Backend angestiegen, mithin also um 2 bzw. 2,5 MB. Insgesamt kommt man mit den 32 MB, die bei 1&1 zur Verfügung stehen, noch ganz gut über die Runden. Eng kann es bei gleichzeitigen Einsatz vieler Plugin oder bei Upload großer Bilder werde.

Generell sollte man für WordPress bei 1&1 (Shared Webhosting) einige Dinge beachten.

Ein Kommentar »

my-hacks.php wird auch in WordPress 3.0 noch unterstützt

Puhhh, Glück gehabt. Nachdem bereits mit WordPress 2.8 die Option für die my-hacks.php aus dem Backend verschwunden war, hatte ich befürchtet, daß auch die Unterstützung für diese älteste WordPress-Erweiterungs-Schnittstelle ab WordPress 3.0 ganz unter den Tisch fallen würde.

Das scheint aber nicht der Fall zu sein, denn in WP 3.0 RC1 wird die my-hacks.php weiterhin geladen, sofern sie aktiviert ist. Damit ist gewährleistet, daß nicht plötzlich nach dem Update wichtige Funktionen ausgesperrt werden, die möglicherweise in der my-hacks.php stehen.

Allerdings kann man nach einer Neuinstalltion die my-hacks-Erweiterung nicht mehr im Backend aktivieren. Dafür müßte man direkt in der Datenbank rumfummeln oder man verwendet das „123 Hackfile Option“-Plugin:

Download: Plugin 123 Hackfile Option 0.12

Die Option dafür erscheint nun allerdings nicht mehr bei Einstellungen->Verschiedenes (gibt es nicht mehr), sondern ganz am Ende von Einstellungen->Allgemein.

Keine Kommentare »

Yahoo Bildersuche setzt falsche URL zu Trefferseiten

Mit und ohne Slash

Oft kommt es ja nicht vor, aber hin und wieder kommen Besucher mit einer falschen URL hier zu Schnurpsel oder etwas häufiger drüben zu Putzlowitsch. Bei beiden Blogs habe ich es so konfiguriert, das am Ende einer normalen URL zu einem Artikel, einer Seite, den Kategorien und Tags ein Schrägstrich (slash) steht. Das sieht dann etwa so aus:

http://example.com/name-des-artikels/

Manche Besucher, teilweise auch irgendwelche Bots, versuchen eine Seite hingegen so aufzurufen:

http://example.com/name-des-artikels

WordPress ist nun seit Version 2.3 so nett, und leitet die Besucher und Bots per Redirect auf die richtige Seite weiter. Nur warum rufen Besucher überhaupt die falsche URL auf, wo haben die diese her? Von mir bestimmt nicht, bei mir steht da immer ein / am Ende.

Besucher von der Yahoo-Bildersuche

Yahoo Bildersuche - falsche URLIch habe im Serverlogfile nachgesehen, die normalen Besucher mit der URL ohne Schrägstrich am Ende kommen fast ausnahmslos von der Yahoo-Bildersuche.

Dort wird für einen Treffer die URL der Zielseite immer ohne Slash am Ende angezeigt und auch der Link so gesetzt. Damit klickt der Suchende auf diese falsche URL und muß nun jedesmal von WordPress auf den richtigen Pfad der Tugend gebracht werden. Das beansprucht den Server damit quasi doppelt.

Nicht mit mir

Ab sofort gibt es bei mir keine Weiterleitung mehr. Wer eine falsche URL aufruft, also ohne Schrägstrich am Ende, wenn da aber einer sein sollte, muß halt die Konsequenzen tragen. :-)

Deshalb gibt es nur noch einen schlichten 404er-Fehler. Ist zwar schade für die Besucher, soviele sind das allerdings auch wieder nicht. Gerade die komischen Bots werden damit aber auch ferngehalten. Ist schließlich nicht mein Problem, wenn die falsche URLs verwenden.
Siehe Kommentare.

12 Kommentare »

Ein nacktes WordPress installieren

WordPress-Installation

Eine neue WordPressinstallation enthält üblicherweise bereits ein paar Beispieldaten. So sind schon eine Seite und ein Artikel mit einem Kommentar vorhanden, etwa wie dieser hier. Die Blogrolle ist auch schon mit ein paar Links gefüllt.

Wenn man das nicht möchte, weil man beispielsweise einen WordPress-Export (per WP-Export als xml) importieren möchte und die IDs der Artikel und Seiten erhalten bleiben sollen, kann man eine benutzerdefinierte Installation verwenden.

WordPress lädt am Anfang der Installation die Datei wp-content/install.php, falls sie vorhanden ist. In dieser kann man einige Installationsfunktionen „überschreiben“. Das funktioniert so wie bei den Funktionen aus der pluggable.php im Verzeichnis wp-includes. WordPress prüft, ob eine Funktion bereits vorhanden ist:

if ( !function_exists('wp_install') ) :
 ...
endif;

Falls nicht, wird die WordPress-Funktion „installiert“, andernfalls wird die bereits vorhandene verwendet. Die wordpresseigenen Installationsfunktionen findet man in wp-admin/includes/upgrade.php, diese kann man sich als Vorlage für eigene Modifikationen hernehmen.

WordPress ohne „Hallo Welt“

Um nun eine leere WordPress-Installation zu erhalten, wird die Funktion wp_install_defaults in der Datei wp-content/install.php neu definiert:

<?php
function wp_install_defaults($user_id) {
}
?>

Es ist einfach eine leere Funktion, dadurch wird aber auch keine Default-Kategorie für Artikel und Links erstellt. Möchte man die Standardkategorien trotzdem haben, nimmt man den oberen Teil aus der originalen WP-Funktion (bis // Now drop in some default links) in die eigene Funktion mit rein. Dabei das global $wpdb nicht vergessen.

Wie man auf diese Weise bereits Plugins bei der Installation aktivieren kann, hatte ich früher schon mal beschrieben.

Nachdem die Anpassungen in der install.php vorgenommen wurden und diese in das WordPress-Content-Verzeichnis kopiert wurde, kann man die WordPressinstallation wie gewohnt starten.

Weitere Artikel mit Bezug zu diesem:
Keine Kommentare »