Schlagwort-Archiv:

Internes

Etwas fürs Archiv (1):
Geordnetes Monatsarchiv

Monate und Jahre Der erste von zwei weitereren kleinen WordPress-Tips, diesmal für die Archivseite. Dorthin packt man ja gerne eine Übersicht über alle Beiträge nach Monaten und nach Kategorien, und in einigen Themes steckt so eine Funktionalität bereits drin, einige Plugins bieten ebenfalls diverse Funktionen.

Wie man solche Archive mit Bordmitteln, nämlich der Funtion wp_get_archives() und einer Theme-Template-Seite macht, hat etwa Perun im Januar beschrieben; für das Kategorienarchiv benutze ich diese auch. Für mein Monatsarchiv hab ich aber „natürlich“ eine eigene Funktion geschrieben, die mir eine schönere Darstellung nach Jahren gruppiert bietet – darum geht es in diesem Beitrag. In ein paar Tagen zeige ich euch dann den Code für die Schlagwort-Mehrfachauswahl, die ihr bereits auf der Archivseite findet.

Stellt sich nur generell die Frage, ob allzu viele Besucher diese Archiv-Funktionalität auch wirklich nutzen… aber egal, im Zweifelsfall betrachtet’s man einfach als ein bisschen Blog-Spielerei.^^

In diesem Fall hab ich den PHP-Code direkt in die Seite geschrieben (im HTML-Editor von WordPress) – weshalb auch das <?php...?>-Tag mittendrin steht –, da ich hier eh schon das Plugin Exec-PHP einsetze, das ebendies ermöglicht1. Alternativ kann man den Code natürlich auch anderweitig unterbringen, etwa über entsprechende Unterscheidungen im Theme oder komfortablerweise per Template – siehe Peruns Artikel.

Wie ihr auf dem Bild oben erkennen dürftet, sind hier Monate vor dem Blogbeginn und nach dem aktuellen Datum gar nicht dargestellt und Lücken der Regelmäßigkeit halber grau; zudem – was aber nur eine Stylingfrage ist – gibt’s keine unnötigen ansonsten listentypischen • Bullets und Einrückungen. Und in Klammern steht die Anzahl der Beiträge.

Das ist der Code dazu:

<style type="text/css">
div.yeararch { float: left; color:#777; margin-right: 2em; }
ul.montharch { list-style-type: none; padding-left: 0px; }
</style>

<?php global $wpdb;
$mnames = array (1=>'Januar', 2=>'Februar', 3=>'März', 4=>'April', 5=>'Mai', 6=>'Juni', 7=>'Juli', 8=>'August', 9=>'September', 10=>'Oktober', 11=>'November', 12=>'Dezember');
$started = false;
$years = $wpdb->get_results("SELECT YEAR(post_date) AS year, COUNT(*) AS count
FROM $wpdb->posts
WHERE post_type='post'
  AND post_status='publish'
GROUP BY year
ORDER BY year ASC");
foreach ($years as $y) {
  echo '<div class="yeararch"><h4><a href="/'.$y->year.'/">'.$y->year.'</a> <small>('.$y->count.')</small></h4><ul class="montharch">';
  $months = $wpdb->get_results("SELECT MONTH(post_date) AS month, COUNT(*) AS count
  FROM $wpdb->posts
  WHERE post_type='post'
    AND post_status='publish'
    AND YEAR(post_date)=$y->year
  GROUP BY month
  ORDER BY month ASC");
  $ms = array();
  foreach ($months as $m) { $ms[$m->month] = $m->count; }
  for ($i=1; $i<=12; $i++) {
    $m0 = sprintf('%02d',$i);
    $mname = $mnames[$i];
    if ($ms[$i]>0) {
      echo '<li><a href="/'.$y->year.'/'.$m0.'/">'.$mname.'</a> ('.$ms[$i].')</li>';
      $started = true;
    } else {
      if ($y->year<date('Y') || $i<=date('n')) {
        if (!$started) echo '<li>&nbsp;</li>'; else echo '<li>'.$mname.' (0)</li>';
      }
    }
  }
  echo "</ul></div>\n";
}
?>

<div style="clear:both;"></div>

Großes Hexenwerk ist der Code nicht: Nach der kleinen CSS-Definition (direkt auf der Seite, da ja nur hier benötigt) schaut der PHP-Code erst in der Datenbank nach, welche Jahre denn in Frage kommen – YEAR(post_date) AS year ... GROUP BY year – und nimmt auch die Beitragsanzahl – COUNT(*) AS count gleich mit.

Für jedes Jahr wird dann ein div-Container generiert, die dank des CSS am Anfang nebeneinander stehen – so viele wie halt auf die Seite passen, bei mir geht’s 2011 dann darunter weiter; ihr könnt ja mit den Abständen (margin-right) spielen. (Der div am Ende mit clear:both; sorgt dafür, dass nachfolgender Text darunter und nicht daneben landet.)

Dann gibt’s für jedes Jahr natürlich eine analoge Datenbank-Abfrage für die nach Monaten gruppierten Beiträge des jeweiligen Jahres, die dann nacheinander ausgegeben werden. Da diese Abfrage nur so viele Array-Einträge liefert, wie Monate benutzt wurden, sortiere ich sie ins Array $ms um, um in der Schleife alle Monate von 1 bis 12 durchlaufen und für leere Monate je nachdem, ob das Blog noch gar nicht begonnen wurde (!$started) oder ob es eine Lücke ist, eine Leerzeile bzw. eine nicht verlinkte Zeile mit der traurigen Null ausgeben zu können.

(Die Monatsnamen bekäme man an sich auch eleganter über PHP-Funktionen, aber irgendwie hatte ich da Probleme im Zusammenhang mit meiner Sprachumschaltung, deshalb die Lösung mit dem $mnames-Array.)

Bei den Links zu den Monatsarchivseiten geht der Code davon aus, dass sie dem Schema /2009/12/ folgen – wer ein anderes Schema mit pretty permalinks verwendet (kommt das denn vor?), muss sie entsprechend anpassen, ebenso wer die „unschöne“ Variante mit ? und Argumenten verwendet; das wäre dann ?m=200912 etc.

So, das war der erste Beitrag zum Archiv – wer Fragen, Anregungen, Verbesserungsvorschläge o.ä. hat, möge jetzt sprechen oder für immer schweigen… Wie erwähnt geht’s dann demnächst um die Mehrfachauswahl bei den Schlagwörtern, aber vielleicht schiebe ich auch noch die Einbindung von WP.com-Stats anstelle von WP-PostViews für die Ermittlung der beliebtesten Beiträge dazwischen, wie Robert angeregt hatte. Mal sehen.

  1. Nebenwirkung: Man muss den HTML-Editor von WordPress verwenden, weil der visuelle nicht mehr möglich ist. []

Die große Enthüllung

Ja, heute ist es endlich so weit:
Der Tag der angekündigten Enthüllung!
 
Und hier ist sie:
 
Die Offenbarung:
 
Das, was ihr schon immer wissen wolltet:
 
Seid ihr bereit?
 
Also:
 
Hier kommt’s:
 
 
Heute beginnt die Snooker-WM!
 
Jetzt um 11 Uhr (natürlich auf Eurosport).
 
Ist doch toll!
 
 
 
Wie?
 
Ihr habt mehr erwartet?
 
Echt?
 
Na gut…
 

Ja, nachdem ich im April 2008 und 2009 jeweils einen Teil verraten hatte, erfahrt ihr heute endlich, was „cimddwc“ komplett bedeutet! Lassen wir doch den „Laudator“ zu Wort kommen, der mir anlässlich des fünfjährigen Jubiläums unserer Haupt-Software im Oktober 2005 den zugrundeliegenden „Titel“ verliehen hat:

CONGRATULATIONS !!!!!!!!!!!!!!!!!!!!!!!!

In Anerkennung Ihrer exorbitant fulminanten Leistungen im Bereich der Entwicklung dem aktuellen Stand der Technik weit vorauseilender Diagnosesoftware werde ich offiziell und unwiderruflich Ihre Beförderung zum Chief International Managing Direktor Developement, Wizardry and Clairvoyance jetzt und für alle Zeiten beantragen.

And there you have it. W und C entbehren nicht einer gewissen Ironie, oder?1

Und? Enttäuscht? Erleichtert? Entgeistert? Ent-garnichts? :mrgreen:

  1. Gemeint war letzteres in der Hinsicht, dass Kunden immer wieder mal von neuen Funktionen, die ich eingebaut hatte (und wenn’s nur eine Erleichterung in der Bedienung war), gesagt hatten, dass sie sie sich schon insgeheim gewünscht hatten… []

1234,56789

Der erste Beitrag in meinem Blog – einfach ein „Hallo Welt!“ – ist vom 6.9.2006 9:05:43 Uhr, somit ist mein Blog ist jetzt – um 22:43:28 Uhr – genau 1234,56789 Tage alt. Wollte ich nur mal kurz erwähnt haben, eine große Feier gibt’s nicht. :)

Was, ihr wollt doch ein bisschen mehr? Na gut, ein Poetron-Gedicht und virtuellen Schampus:

Das Bloggen der Blogs
 
Blogs müssen träumen.
Sie träumen alt und zerschlagen.
Sie grapschen albern und rein.
 
Oh Blogger, alt bist auch du!
 
Was wohl grapschen, was bloggen?
Die Stimmungen!
Grapschende Blogs!
Alt träumen die Blogs,
alt und rein.

redhead model cheering isolated on white

 


Photo: Gleb Semenjuk – Fotolia.com

Blog-Statistik 2009

Wie schon letztes Jahr gibt’s auch diesmal eine Blog-Jahresstatistik mit quietschleuchtendbunten Diagrammen. Hier gibt’s allerdings wirklich nur die Statistiken, einen Rückblick auf die wichtigsten Beiträge und Serien gab’s ja schon letzten Montag im Rahmen von Saschas Blogparade.

Die Zahlen stammen wieder von WordPress.com Stats, das die Seitanaufrufe aller echten Besucher mit aktiviertem Javascript zählt, aber nicht meine eigenen (und natürlich keine Suchmaschinen-Bots). Beginnen wir mit der Summe aller Aufrufe, insgesamt 343.982 bis einschließlich gestern, das sind 66% mehr als letztes Jahr:

Views 2009 pro Woche

Die Spitze zu Jahresbeginn war natürlich meinen „The Next Uri Geller“-Berichten zu verdanken. Die Besucherzahlen waren in den „normalen“ Monaten des Jahres zumindest von Mai bis Oktober erfreulicherweise ungefähr doppelt so hoch wie 2008. Leider fallen sie seit Mitte November aber wieder deutlich – überwiegend wohl dank weniger Googler (auch wenn ich da keine exakten Zahlen habe); eine Auswirkung von Googles Absichten, die Ladezeit der Seiten (inkl. Javascript, Bildern und externer Dienste) mehr bei den Suchergebnissen zu berücksichtigen? Da sah (und sieht) es hier leider nicht so toll aus, wobei ich in letzter Zeit schon ein paar Kleinigkeiten optimiert habe (und noch weiter optimieren werde) und teste – so werden etwa die CSS- und JS-Dateien des Umfrageplugins WP-Polls nicht mehr auf Einzelseiten geladen, die keine Umfrage enthalten, und testweise werden vorläufig die externen Links von Blogfever und Blogmachine nur noch vormittags eingebunden.

Mal sehen, ob Googles Webmaster Tools hier in ein paar Wochen eine Besserung anzeigen, aber über die ohnehin besucherschwachen Feiertage (die zu weniger Belastung und potentiell schnelleren Zeiten bei allen beteiligten Servern führen) lässt sich da noch nichts Konkretes sagen.

Die Liste der musikalischen Zitate unter (fast) jedem Beitrag, die ich letztes Jahr noch separat ausgewiesen hatte, spielte 2009 keine große Rolle mehr, v.a. seit Juli, wo nur noch rund ein Dutzend Besucher täglich vorbeitröpfeln. Google (und die Googler) mögen diese Seite wohl nicht mehr so gerne…

Beiträge und Kommentare pro Woche 2009

Jedenfalls habe ich dieses Jahr bisher (ohne diesen) 615 Beiträge geschrieben, das sind 11,8 pro Woche und 8,5% mehr als letztes Jahr. Belohnt wurden diese mit 2738 Besucherkommentaren (4,45 pro Beitrag, 29% mehr als letztes Jahr) – vielen Dank! Auch wenn andere über diese Zahlen nur müde lächeln dürften, zumal viele Kommentare meinem weitgehend regelmäßigen Quiz zu verdanken sind… Hinzu kamen noch 1510 Kommentare (2,46/Beitrag, +18%) von mir selbst.1

Der Verlauf übers Jahr hinweg ist quasi umgekehrt zu 2008, wo im letzten Drittel die meisten Kommentare kamen.

Der meistgelesene Beitrag dieses Jahr waren meine Prophezeiungen zu 2012 von Ende Januar: ganze 39611 Aufrufe zählte WP.com Stats bis gestern – da können auch die Lotto­prognosen­kritiken nicht mithalten. Florian Freistetter hat die Prophezeiungen am Ende seines ersten „Kein Weltuntergang“-Beitrags (dem noch etliche andere sowie unzählige Kommentare folgten) mit den Worten „Und zum Abschluss verweise ich noch auf sechs Prophezeiungen über 2012, die garantiert eintreten werden!“ verlinkt, und man höre und staune, 34130x klickten Besucher darauf, um hier zu landen – stolze 86%! Danke, Florian! :)

Angesichts der im allgemeinen eher weit verbreiteten Klickfaulheit vieler Surfer möchte ich gar nicht wissen (das heißt, doch, eigentlich würde ich es schon gerne wissen), auf wie viele Aufrufe Florians Artikel dabei kommen, insbesondere von Suchmaschinenbenutzern und nicht den Kommentatoren und stillen Kommentar- Mitlesern.

2012-Prophezeiungen pro Woche

Die Spitze liegt natürlich um den Kinostart in Woche 46 von Roland Emmerichs 2012-Film herum mit einem Tagesspitzenwert von 678 Aufrufen am 8. November, dem Sonntag vor der Premiere.

So, das war’s mit der Jahresstatistik – ich bin gespannt, wie es 2010 weitergeht, und ihr dürft gespannt sein, was ich euch 2010 so alles zu bieten haben werde… Übrigens dürft ihr auch gerne Wünsche äußern. :)

  1. Die SQL-Abfragen dazu finden sich im letztjährigen Beitrag. Anpassen der Jahreszahl nicht vergessen! []

Käsch

Rennhund Nur ein kleiner interner Hinweis: Hier im Blog läuft seit ein paar Stunden WP Super Cache, ein Plugin, das die erzeugten Seiten eine Zeit lang zwischenspeichert – für die Allgemeinheit als reine HTML-Dateien, sodass nicht mal die PHP-Engine anspringen muss – und so für weniger Serverlast sorgt. An sich solltet ihr nichts davon bemerken, außer dass die Seiten, die in letzter Zeit schon mal abgerufen wurden, schneller erscheinen. Wobei diejenigen, die hier schon mal kommentiert (und dadurch einen entsprechenden Cookie gesetzt) haben, nicht aus dem HTML-Cache („super cache“) bedient werden.

Die Anzeige der neuesten Kommentare in der Sidebar ist für die Nicht-Kommentatoren dann auf gecacheten Seiten wahrscheinlich nicht immer topaktuell, aber ich denke, das kann man verschmerzen. (Auch WP-PostViews zählt keine Suchmaschinen auf gecachten Seiten mehr.

Außerdem läuft seit einigen Tagen DB Cache Reloaded, das einzelne Datenbankabfragen zwischenspeichert – was den Vorteil hat, dass auch andere Seitenaufrufe profitieren als die, die vor kurzem stattgefunden hatten. Was mir allerdings aufgefallen ist, ist, dass der erste Aufruf der Admin-Seiten und das erste Schreiben eines Kommentars nach einiger Zeit relativ lange dauert – wohl weil DBCR dann die zahlreichen alten Cache-Dateien durchgeht und löscht; mir scheint, diese Garbage Collection ist noch nicht optimal…

Nun denn, falls euch irgendetwas Problematisches auffält, bitte Bescheid sagen. :)


Photo: TisseurDeToile/flickr, CC-Lizenz