Version 0.2
- Kürzt optional ab Wortende
- Multibyte-Support wenn möglich (sonst kann es zu unschönen Effekten bei z.B. Umlauten kommen wenn UTF-8 verwendet wird)
- Kürzt nur auf der Startseite (is_home)
- Bugfix: PHP-Tags diesmal nicht vergessen :)
PHP
<?php
/*
Plugin Name: CyTB ShortenTitles
Version: 0.2
Plugin URI: http://www.cywhale.de
Description: Kürzt Beitrags-Title auf der Startseite auf best. Anzahl Buchstaben und hängt bel. Zeichenkette an. UTF-8 Support, optionale Wortgrenzensuche.
Author: Cywhale
Author URI: http://www.cywhale.de
Min WP Version: 2.3
*/
function cyTB_shortenTitle( $title ){
// Einstellungen
$maxlength = 20; // Anzahl Buchstaben
$trail = '…'; // Anhängsel
$cutwords = TRUE; // Wortgrenze suchen TRUE/FALSE
$mb_internal_encoding = 'UTF-8';
// Einstellungen Ende
// Wenn Startseite...
if( is_home()){
// Haben wir Multibyte-Support (UTF8)?
if( function_exists( 'mb_internal_encoding')){
mb_internal_encoding($mb_internal_encoding); // WP benutzt standardmässig UTF-8
if( mb_strlen( $title ) > $maxlength ){ // Zu lang ?
$title = mb_substr( $title , 0 , $maxlength ); // Kürzen...
if( $cutwords === TRUE ){ // Wortgrenze suchen
$wordboundary = mb_strrpos( $title , ' ' );
if( $wordboundary ){ // Wenn Wortgrenzen aktiviert...
$title = substr( $title , 0 , $wordboundary+1 );// ...nochmal kürzen
}
}
$title = $title.$trail; // Anhängsel dran
}
}else{ // kein Multibyte-Support :(
if( strlen( $title ) > $maxlength ){
$title = substr( $title , 0 , $maxlength );
if( $cutwords === TRUE ){
$wordboundary = strrpos( $title , ' ' );
if( $wordboundary ){
$title = substr( $title , 0 , $wordboundary+1 );
}
}
$title = $title.$trail;
}
}
}
return( $title ); // Fertig.
}
add_filter( 'the_title' , 'cyTB_shortenTitle' );
?>
Alles anzeigen
Gute Nacht