Mein neues WordPress Theme Bugis bringt von Haus aus eine Unterstützung für WP PageNavi mit. So steht es jedenfalls in der Beschreibung des Theme. Leider beschränkt sich diese Unterstützung in der Bereitstellung des entsprechenden CSS-Codes. Das ist zwar ein Großteil der Arbeit, aber es wäre schon schön gewesen, wenn auch in den Theme-Dateien selber bereits das Plugin integriert wäre. Und zwar mit einer Abfrage, ob das Plugin installiert und aktiviert ist. Und im Fall des Nichtvorhandenseins von WP-PageNavi sollte eine Fallback-Lösung angeboten werden. Lies „Bugis für WP-PageNavi anpassen“ weiter
Wer seine Beiträge auch überarbeitet, kennt das Problem: Es wird nur das Datum der ersten Veröffentlichung ausgegeben. Und selbst mehrfach aktualisierte Posts wirken veraltet. Doch mit dem Template-Tag the_modified_time() kann man leicht das Datum der letzten Aktualisierung ausgeben.
Mit dem folgenden PHP-Code gebe ich das Datum der Veröffentlichung eines Posts aus. Dann wird abgefragt, ob es dies mit dem Datum der letzten Überarbeitung gleich ist. Ist dem nicht so, wird auch das Datum der letzten Überarbeitung ausgegeben:
Für meine Bedürfnisse wird der Ausgabe jeweils noch ein Veröffentlicht: bzw. ein Überarbeitet vorangestellt. Ebenso wird die Ausgabe mit einem Zeilenumbruch beendet. Dieser Code funktioniert gänzlich ohne irgendwelche Plugins. Wer die Ausgabe anpassen möchte, findet im WordPress Codex unter dem Stichwort the_modified_time() weitere Informationen.
Benutzt eigentlich jemand die WordPress interne Suche? Und nach welchen Inhalten wird das eigene Blog durchsucht? Dieses kleine PHP-Script schickt an den Administrator eine sofort E-Mail, wenn ein Besucher die Suchfunktion benutzt.
Michael Jendryschik bietet in seinem überaus lesenswerten Artikel zu individuellen Fehlerseiten ein Script an, dass den Administrator bei Fehlermeldungen des Servers informiert. Mit ein paar kleinen Änderungen kann man dieses Script auch in sein WordPressblog einbauen und sich über die Benutzung der internen Suchfunktion von WordPress informieren lassen.
Das Script
<?php
// 1. Adresse, an welche die E-Mail versendet werden soll
$empfaenger = "deineemail@adres.se";
$betreff = "Neue Suchanfrage auf www.deinedomain.de";
// 2. Nachricht zusammenbauen.
$message = "Auf der Website wurde die interne Suche benutzt.\n\n";
$message .= "Aufgerufene Ressource:\n";
$message .= "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]."\n\n";
$message .= "User-Agent:\n";
$message .= $_SERVER["HTTP_USER_AGENT"];
if($_SERVER["HTTP_REFERER"] != "") {
$message .= "\n\nAufgerufen von der Adresse:\n";
$message .= $_SERVER["HTTP_REFERER"]; }
// 3. Header-Informationen
$header = "From: Benachrichtigung Suche <info@" . $_SERVER["SERVER_NAME"]."-->\n";
$header .= "Content-Type: text/plain";
// 4. Mail zusammenstellen und absenden
@mail($empfaenger, $betreff, $message, $header);
?>
Der PHP-Code selber ist in vier Teile aufgeteilt:
In diesem Teil wird definiert, wohin die Benachrichtigung geschickt werden soll.
Dies ist der entscheidende Teil des Benachrichtigungsscripts. Hier wird wird mit dem Abschnitt
die angefragte Suchseite mit den Suchbegriffen ausgegeben. Bereits anhand dieser URL sollten die Suchbegriffe deutlich werden. Ansonsten muss man die Seite halt selber aufrufen, sofern dort auch die Suchbegriffe selber angezeigt werden.
Mit dem Teil
if($_SERVER["HTTP_REFERER"] != "") {
$message .= "\n\nAufgerufen von der Adresse:\n";
$message .= $_SERVER["HTTP_REFERER"]; } wird zudem noch abgefragt, auf welcher Seite die Suche gestartet wurde.
Dieser Teil definiert die Absenderinformationen für die Benachrichtigungs-E-Mail.
Und wird die E-Mail zusammengesetzt und gesendet.
Anpassen
Im ersten Teil musst du zwei Einträge ändern. Statt deineemail@adres.se musst du deine E-Mail-Adresse eintragen. Und auch www.deinedomain.de solltest du ändern, aber es ist nur eine kosmetische Änderung.
Einbinden in WordPress
Damit das Script leicht eingebunden werden kann, braucht dein WordPress-Theme ein eigenes Template für Suchergebnisse. Die meisten WordPress-Themes sollten ein solches Template haben, auch das mit WP 3.0 mitgelieferte Twenty Ten bringt eine search.php mit.
Dort bringt man am Ende des Templates das obige PHP-Script unter. Vor diesen zwei abschließenden Zeilen ist es am Besten untergebracht:
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Aber …
Für ein kurzzeitiges Monitoring eignet sich die E-Mail-Benachrichtigung gut. Längerfristig sollte man für sein WordPress-Blog ein vernünftiges Statistik-Tool benutzen, mit dem auch ein Monitoring der internen Suchfunktion möglich ist.
Die Übersichtsseiten zu den verschiedenen Themen dieser Seite wollte ich etwas aufwerten. Dazu sollten die am meisten kommentierten Beiträge eingeblendet werden. Mit ein paar kleinen Zeile ist es leicht möglich, diese Beiträge zu einem bestimmten Tag mit WordPress auszugeben.
Der englische Beitrag Get Popular Posts In Current Week, Month By Comment Count bildet die Grundlage für den folgenden Code-Schnipsel. Mit ein paar Modifikationen, sprich dem Einbinden der Abfrage des passenden Tags, lassen sich einfach die am meisten kommentierten Artikel zu einem Thema auflisten.
Der gesamte Code zur Ausgabe der Artikel nach Kommentarzahl sortiert
Das folgende Code-Beispiel ist recht einfach aufgebaut und benutzt das bekannte query_posts() mit einigen Parametern:
Mit post_type=post wird bestimmt, was ausgegeben werden soll. Hier sollen nur Posts, also Artikel ausgegeben werden. Denn Seiten können auf dieser Seite nicht kommentiert werden.
posts_per_page=5 Theoretisch könnte man diesen Query auf mehrere Seiten verteilen und man bestimmt hiermit, wieviele Artikel auf einer Seite dargestellt werden sollen.
Mit tag=WordPress wird bestimmt, dass nur Beiträge mit dem Tag WordPress ausgegeben werden sollen. Auf die exakte Schreibweise des Tags ist hier zu achten. Und wer Tags mit Leerzeichen benannt hat, wird höchstwahrscheinlich Probleme bekommen. Abhilfe schafft die Umbenennung der Tags und Trennung der Worte mit einem Bindestrich.
Wonach sollen die ausgegebenen Beiträge sortiert werden? Genau, nach der Anzahl der Kommentare: orderby=comment_count.
Und zwar sollen die Beiträge mit den meisten Kommentaren oben stehen, weshalb so sortiert wird: order=DESC.
Rundherum …
Wer die Ausgabe anpassen möchte, darf sich an die Bearbeitung dieser Zeile machen:
Der Artikeltitel kann als Überschrift ausgegeben werden, Datum und Auszüge des Artikels ausgegeben und natürlich kann auch die Anzahl der Kommentare besonders hervorgehoben werden. Der Gestaltung sind durchaus wenige Grenzen gesetzt.
Mein Wunsch …
Mein Wunsch zur Aufwertung von Tag-Archiven wäre allerdings eine Erweiterung des Scripts: Auf den Seiten einzelner Artikel werden die meist kommentierten Artikel zu einer Auswahl aus bestimmten Tags ausgegeben. Das könnte durchaus interessante Verknüpfungen hervorbringen, wobei mir der Aufwand und auch die Fehleranfälligkeit doch unnötig hoch zu sein scheint.
Suchmaschinen sollen gelegentlich nicht alle Artikel eines Blogs in ihren Index aufnehmen. So sollen Google & Co meine regelmäßigen Links nicht in ihren Index aufnehmen.
Mit einer Anweisung im <head> Bereich lassen sich Suchmaschinen leicht überzeugen, bestimmte Inhalte nicht zu indexieren. Und dank der Aktion Frag den WordPress-Experten habe ich nun folgenden PHP-Code eingebaut: