Titel und Auszug kürzen

Das Auge isst mit heißt ein kluges Sprichwort. Und auch wenn es sich bei meinem Regionalmagazin weder um etwas essbares, noch um Themen rund um das Essen handelt, muss die Darstellung dem Leser zusagen.

Dazu gehört nicht nur ein modernes Theme, sondern auch die Tatsache, das nebeneinander liegende Widgets auch möglichst auf einer Höhe liegen. Letzteres war auf meinem neuen Projekt nicht unbedingt der Fall

Unterschiedlich hoch gelegene Widgets
Durch überlange Auszüge und Überschriften sind die Widgets nicht auf gleicher Höhe

Also hieß es, sich auf die Suche nach einer Lösung zu machen. Diese grobe Lösung fand ich auf der Seite von Thomas

Zusammen mit einer weiteren Funktion, die dafür sorgt, das die Wörter nicht mittendrin abgeschnitten, sondern immer entweder fallen gelassen oder zu Ende geschrieben werden, hatte ich den Großteil der Lösung also schon mal gefunden.

Doch mit dem Einfügen des neuen Codes und der Anpassung der entsprechenden Content-Datei taten sich neue Probleme auf.

Denn mit dem Einbau von toschos Schnipsel wurden bei mir plötzlich nicht mehr die verkürzten Auszüge angezeigt, sondern die ersten Sätze des eigentlichen Artikels.

Auszug direkt aus dem Artikel statt des ‚richtigen‘ Excerpts

Doch Gott sei Dank habe ich mit dem Forum von seitenreport.de, und hier vor allem mit Matthes einen kompetenten Ansprechpartner, der mir bei vielen meiner Probleme schon geholfen hat. Seit das Forum von wpde.org auf die neue Vorgehensweise umgestellt wurde, habe ich dort entweder gar kein Thema mehr eröffnen können oder keine Antworten erhalten. Aber das nur so nebenbei.

Das mit der Anzeige des Excerpts aus dem Artikel wäre nicht das große Problem gewesen. Doch ich habe bisher in meinen Artikeln mit dem Initial bzw. dropcap-shortcode gearbeitet. Damit wird der erste Buchstabe vergrößert dargestellt. Dieser shortcode wird in den Widget nicht umgesetzt, sondern im Klartext angezeigt – was nicht nur aus ästhetischen Gründen suboptimal ist. Denn es liest sich auch der Text schwerer.

Eigentlich hätte ich – bei genauerer Betrachtung des Codes – selbst auf die Lösung kommen können. Der sieht folgendermaßen aus:

/** 
 * Erzeugt einen Auszug mit genau definierter Zeichenzahl. 
 * 
 * @param int $chars Menge der Zeichen. 
 * @param bool $echo Aus- oder Rückgabe 
 * @return string 
 */ 
function excerpt_chars($chars = 100, $echo = TRUE) 
{ 
    global $post; 

    $out = strip_tags($post->post_content); 
    $out = substr($out, 0, (int) $chars); 
    $out = end_on_word($out) . ' …'; 
    $out = xwp_autop($out); 

    if ( $echo ) 
    { 
        echo $out; 
        return; 
    } 

    return $out; 
} 

Verantwortlich für die Anzeige des Auszugs aus dem eigentlichen Artikel ist Zeile 12.

Genauer gesagt das post_content.

Matthes brachte mich dann auf die Lösung, das ich hier das content in excerpt ändern musste. Im Anschluss wurde dann der ‚richtige‘ Auszug angezeigt. Damit war gleichzeitig auch das Problem des in Klarschrift angezeigten Shortcodes erledigt.

Auch der Artikel-Titel lässt sich kürzen

Doch ganz war das noch nicht die Lösung des Problems mit der optimalen Darstellung der Widgets. Schließlich hat nicht nur jeder Auszug nicht die gleiche Anzahl an Zeichen, auch die Überschriften respektive die Titel der Artikel fallen unterschiedlich lang aus.

Was war nun die Lösung dieses Problems?

Ganz einfach – schließlich bin selbst ich darauf gekommen: Den oben dargestellten Code kopiert, post_content bzw. post_excerpt durch post_title ersetzt – und schon werden auch die Titel nach einer bestimmten Anzahl an Zeichen abgeschnitten. In meinem Falle nach 60 Zeichen, wie in Zeile 7 angegeben

Hier die geänderten Schnipsel:

function title_chars($chars = 100, $echo = TRUE) 
{ 
    global $post; 

    $out = strip_tags($post->post_title); 
    $out = substr($out, 0, (int) $chars); 
    if(strlen($post->post_title)>60)
		$out = end_on_word($out) .' …'; 
    $out = xwp_autop($out); 

    if ( $echo ) 
    { 
        echo $out; 
        return; 
    } 

    return $out; 
}

für den Titel, und

function excerpt_chars($chars = 100, $echo = TRUE) 
{ 
    global $post; 

    $out = strip_tags($post->post_excerpt); 
    $out = substr($out, 0, (int) $chars); 
    if(strlen($post->post_excerpt)>130)
		$out = end_on_word($out) .' …'; 
    $out = xwp_autop($out); 

    if ( $echo ) 
    { 
        echo $out; 
        return; 
    } 

    return $out; 
}

für den Excerpt.

Beachten müsst ihr natürlich, das ihr die Funktion jeweils entsprechend umbenennt. Ansonsten spuckt Euer Server entsprechende Fehlermeldungen aus.

Die verschobene Ansicht der Widgets sollte damit ein für allemal der Vergangenheit angehören. Betrachten kann man das Ergebnis natürlich auf dem Regionalmagazin.

Schreibe einen Kommentar