go41

Anzahl der Worte in the_excerpt ändern

von Joern am 23. Okt. 2008 | Keine Kommentare

Um in einem meiner Blogs die Beitragslänge der Featured Posts bestimmen zu können, hatte ich meist die Funktion the_content_rss benutzt. Dort kann man zum Beispiel die Anzahl der Worte festlegen. Beispiel:

<?php the_content_rss('', TRUE, '', 25); echo "<br />\r\n"; ?>

Nur schneidet das am Ende immer ein Wort durch, was nicht schön aussieht.
Dann habe ich versucht das Problem mit der PHP funktion substr auf get_the_excerpt() anzuwenden, das bringt in etwa ein vergleichbares Ergebnis wenn ich es so aufrufe:

<?php $shortex = substr(get_the_excerpt(), 0, 170);echo $shortex; echo "<br />\r\n"; ?>

Das sieht im Quelltext sogar noch besser aus, nicht so viele white spaces und linefeeds mitten im Text.

Die ultimative Lösung habe ich gerade hier gefunden:
Limit the number of words in excerpt without plugins…

bechster schlägt vor, in die functions.php deines Themes folgenden Code einzufügen:

<?php
function string_limit_words($string, $word_limit)
{
$words = explode(' ', $string, ($word_limit + 1));
if(count($words) > $word_limit)
array_pop($words);
return implode(' ', $words);
}
?>

Wenn im Theme-Verzeichnis keine functions.php ist, dann erstellt man eine mit genau nur dem obigen Inhalt.

Diese Funktion ist somit immer vorhanden (wie ein aktiviertes Plugin), zerlegt den String in einzelne Worte und gibt den String wieder zusammengesetzt mit der im Aufruf gewünschten Zahl von Worten zurück.

Wenn man nun in seinem Theme zum Beispiel in der index.php die Zeile

<?php the_content() ?>

ersetzt durch diesen Code:

<?php $excerpt = get_the_excerpt(); echo string_limit_words($excerpt,35) . " ...<br />\r\n"; ?>

dann erhält man einen Excerpt seines Beitrags mit hier 35 Worten.

Zu sehen auf ezXplain in den Tabbed Feature Posts auf der Startseite. (Diese sind übrigens mit jQuery UI erstellt)

Danke an all die fleißigen Coder…

the_excerpt truncate I have set the excerpt length to 5 words. There are 3 testimonials on the page. The first is truncated to 5 words The second is truncated to 10 words I know I can control the length of excerpts using a filter, however it sets the length globally. In my case I have different lengths of excerpts on three different pages. This is what I To change the excerpt “read more” string using the excerpt_more filter add the following code to the functions.php file in your theme: /** * Filter the excerpt "read more" string. * * @param string $more Displaying truncated posts or excerpts With this option, posts that have manual excerpts will display the excerpt. Posts without manual excerpts will display an automatic excerpt, which is generated from the first 55 words from the post. Posts without manual Tags: displaying, truncated, posts, All the styling is gone, the links are gone, and we are only seeing the excerpt. Now this is entirely theme dependent. Different themes will handle excerpts differently. And different themes will display excerpts in

Autor:

Du findest mich auch auf Twitter und Facebook!

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.