In WordPress kann eigentlich alles mögliche angezeigt werden, ich wollte heute die längsten Artikel mit so wenig Code wie nötig auf meiner Seite auslesen. Ich bin zu dem Schluss gekommen das es am einfachsten ist, die Anzahl der Zeichen direkt in MySQL auszulesen und die Leerzeichen auszuklammern.
So wird das Ergebnis meiner Meinung nach am genauesten ausfallen. Kopiert den Code-Schnipsel einfach in die single.php eures Themes und editiert die Überschrift im H3-Tag.
<?php
$query = "SELECT ID, post_title, LENGTH(REPLACE(post_content,' ','')) AS count FROM $wpdb->posts WHERE post_type = 'post' ORDER BY LENGTH(post_content) DESC LIMIT 5";
$result = $wpdb->get_results($query);
if ($result) {
echo '<h3 class="widget-title">Die längsten Artikel auf galuba dot net</h3>';
echo '<ul>';
foreach($result as $post) {
echo '<li><a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a> ('.$post->count.')</li>';
}
echo '</ul>';
}
?>

28. Februar 2011 um 13:16 Uhr
Vielen Dank für den Code. Ich habe es auf unserer Seite integriert in der sidebar.php. Allerdings habe ich den Eindruck, dass die Ladezeit der Seite damit – trotz wp supercache – ziemlich nach oben gegangen ist. Kannst du das bestätigen? Vielleicht liegt es bei uns daran, dass wir tausende von Artikeln in WP haben, da wäre dann ein Cache bzw. täglich einmalige Berechnung der Ausgabe nicht schlecht…
28. Februar 2011 um 13:22 Uhr
Eine Veränderung der Ladezeit konnte ich dadurch, zumindest in meinem Blog nicht feststellen. Aber zu dem Zeitpunkt hatte ich auch noch nicht so viele Artikel veröffentlicht, daher kann es ganz gut sein, das die Ladezeit dadurch höher wird. Auch weil die MySQL-Abfrage recht speicherintensiv ist, da ja von jedem Artikel die Anzahl der Zeichen errechnet werden muss.
Das könnte umgangen werden indem man das Ergebnis zwischenspeichert (z.B. in einer Textdatei) und diese mittels eines Zeitstempels nur ein oder zwei Mal pro Tag aktualisiert.
28. Februar 2011 um 15:33 Uhr
Ja, genau sowas wäre interessant. Da ich das nicht kann, hab ich den Code erstmal rausgenommen. Vielleicht teste ich es nochmal bei einer kleineren Seite, wo MySQL nicht so schwitzen muss
Danke für deine Antwort!
29. März 2012 um 10:01 Uhr
Hallo,
genau so etwas suche ich. Da ich ein widget dazu in meine Sidebar einfügen möchte meine Frage: Gibt es so etwas auch als plugin? Habe dazu nichts gefunden.