Neben der üblichen Ausgabe eines Blog-Beitrages durch the_content(); kann man auf den Übersichtsseiten von WordPress den Inhalt auch Auszugsweise ausgeben und zwar durch das Template-Tag the_excerpt();. Leider ist dieser Template-Tag nicht so mächtig, wie der erste oder besser gesagt: ihm wurden keine Parameter auf den Weg gegeben und so kann man ihn im Frontend gar nicht anpassen.
Heute hatte ich die Bitte eines Kollegen bekommen, dass alle Beiträge als Auszüge ausgegeben werden und das anstatt der drei Punkte die richtigen Auslassungszeichen (…) erscheinen sollen. dafür begibt man sich in die Datei formatting.php im Ordner wp-includes und dort zwischen den Zeilen 844-862 findet man den Bereich, der für den Auszug zuständig ist:
function wp_trim_excerpt($text) { // Fakes an excerpt if needed
if ( '' == $text ) {
$text = get_the_content('');
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text);
$excerpt_length = 55;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '[...]');
$text = implode(' ', $words);
}
}
return $text;
}
Speziell die Zeile 853 ($excerpt_length = 55;) und die Zeile 857 (array_push($words, '[...]');) sind recht interessant. Mit der ersten Angabe kann man die Anzahl der Wörter anpassen, die ausgegeben werden, wenn zwar ein Auszug ausgegeben wird, aber keiner vom Autor verfasst wurde. Das System gibt dann hier standardmäßig die ersten 55 Wörter des reinen Textes (engl. plain text) aus.
In der zweiten Angabe kann man das Zeichen setzen welches dem Leser symbolisiert, dass es sich hier einen Auszug handelt. Richtigerweise müssten hier die Auslassungszeichen (… oder …) rein, die oft fälschlicherweise (Unwissenheit oder Gemütlichkeit) durch drei Punkte ersetzt werden.
Hinweis:
Kostenloser WordPress-Newsletter
Wöchentl. Newsletter zu WordPress und verwandten Themen
Tut mir Leid, aber die Kommentar-Funktion ist momentan deaktiviert.
1. – Perun
Kommentar vom 17. October 2008 um 22:25
An den kleinen Spamer,
wenn es dir in der Uni-Erlangen so langweilig ist, geh einfach schlafen.
2. – Benni
Kommentar vom 17. October 2008 um 23:14
Wäre es nicht weitaus besser in der functions.php die Funktion nachzubauen? Denn ich kann mir nicht vorstellen, dass ein Hack in den Includes Vorteile mit sich bringt.
Zudem wird die Datei dann jedesmal wieder überschrieben und die Änderung zunichte gemacht, wenn man WordPress aktualisiert.
3. – Perun
Kommentar vom 18. October 2008 um 02:54
@Benni,
sicherlich, der Weg über die functions.php oder sogar ein Plugin wäre natürlich die elegantere Lösung.
4. – Micha
Kommentar vom 18. October 2008 um 10:54
Um die Anzahl der Worte zu verändern , kann man in Theme
the_content_rss('', TRUE, '', 30)verwenden, wobei die 30 für die Anzahl der Worte steht.
5. – John
Kommentar vom 20. October 2008 um 10:27
Für weitere Ideen zu diesem Thema empfehle ich die Kommentare bei diesem Artikel:
http://jowra.com/journal/2006/05/wordpress-funktion-the_excerpt/
Sind entsprechende Lösungen dabei.
Habari ist diesbezüglich wesentlich cleverer, da kann ich im Template einfach die Core-Funktion abändern und beliebige Parameter hinzufügen/wegnehmen, whatever.
Denn für jede 3-Buchstaben-Änderung wieder ein Plugin installieren… das kann es nicht sein.
6. – m.o.m.
Kommentar vom 21. October 2008 um 12:25
…sind doch auch drei Punkte. Verstehe nicht ganz den Satz.7. – Perun
Kommentar vom 21. October 2008 um 12:39
@m.o.m.,
http://de.wikipedia.org/wiki/Auslassungspunkte
8. – Florian Fiegel
Kommentar vom 21. October 2008 um 13:53
Danke für die nützlichen Hinweise. So weiß ich nun auch, wie ich WordPress vernünftig manipulieren kann um die Außlassungszeichen zu verwenden. Das nervt mich nämlich tatsächlich tierisch, dass es in fast überall falsch ist …
Wäre vielleicht auch etwas, was man mal in die Community zurückbringen könnte. Eine generelle Korrektur sollte doch im Sinne der Entwickler sein.
9. – Ben
Kommentar vom 03. November 2008 um 08:16
Hey,
wie bekomme ich es hin, dass [...] mit dem Artikel verlinkt ist ?
Bei mir wird davon nix angezeigt.
Lieben Gruß
10. – Niederrhein
Kommentar vom 04. November 2008 um 19:14
Hat jemand eine Idee auf die Frage von Ben (Beitrag 9). Meine PHP-Kentnisse sind nicht die besten. Würde jedoch auch gerne auf den Punkten den Link zum kompletten Artikel setzen. Also nicht nur den Link auf den Title sonder auch auf die drei Punkte. Hat vielleicht jemand eine Idee?
11. – Ben
Kommentar vom 06. November 2008 um 14:44
Hallo,
hier nun die Lösung, wie man [...] mit dem Artikel verlinkt.
http://www.gruening.me/template-tag-the_excerpt-verlinken.html
LG
12. – Perun
Kommentar vom 06. November 2008 um 19:28
@Ben,
vielen Dank.
13. – Wordpress Plugin Gurken Stripper - infogurke.de
Pingback vom 14. November 2008 um 22:00
[...] perun suchte man bereits nach eine Lösung. Dort muss man jedoch in den PHP-Dateien rumfummeln und [...]
14. – the_excerpt anpassen
Pingback vom 27. August 2009 um 14:53
[...] 17.10.2008 schrieb Perun bereits, wie man den Template-Tag the_excerpt(); anpassen kann, indem es um die weiter lesen [...]
15. – Alexander Ring online | RS Event und the_excerpt()
Pingback vom 17. August 2010 um 12:02
[...] Perun jowra [...]