Also ich wollt mal Fragen ob es möglich ist, falls eine Überschrift eines Titels zu lang ist also sagen wir mal mehr als 15 Zeichen benutzt es ab Zeichen 14 mit "..." endet?
Beispiel: Endlich ist es soweit
sollte aber dann so sein
Endlich ist es ...
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellenAlso ich wollt mal Fragen ob es möglich ist, falls eine Überschrift eines Titels zu lang ist also sagen wir mal mehr als 15 Zeichen benutzt es ab Zeichen 14 mit "..." endet?
Beispiel: Endlich ist es soweit
sollte aber dann so sein
Endlich ist es ...
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
/*
Plugin Name: ShortenMyTitles
Version: 0.1
Plugin URI: http://www.cywhale.de
Description: Kürzt Post-Title auf best. Anzahl Buchstaben und hängt bel. Zeichenkette an.
Author: Cywhale
Author URI: http://www.cywhale.de
Min WP Version: 2.3
*/
function cyTB_shortenTitle($title){
$maxlength=15; // Buchstabenanzahl
$trail='…'; // Anhängsel
if(strlen($title)>$maxlength){ // Wenn zu lang...
$title=substr($title,0,$maxlength).$trail; // ...kürzen
}
return($title); // Zurückgeben
}
add_filter('the_title','cyTB_shortenTitle'); // Filter anmelden
Alles anzeigen
Miniplugin speichern, $maxlength und $trail können angepasst werden.
Die Titel werden dann überall gekürzt, alternativ könnte man noch eine Abfrage nach Seitentyp (Home, Archiv, Feed,...) einbauen und auf Wortlänge kürzen lassen.
ANdere Möglichkeit: Ähnlich wie im Plugin können im Theme bei Postanzeige (index.php, page.php, single.php, archive.php,...) ohne Plugin direkt die <?php the_title(); ?>-Ausgaben mit substring() 'vorbehandelt' werden.
Grüsse
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
/*
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
Ohne das Plugin zu benötigen oder geprüft zu haben: Alle Achtung, cywhale. Sehr nett, hier mal eben ein Plugin zu stricken! :cool: Jetzt muss es darkhawk nur noch zum Laufen bringen und sich darüber freuen. :-D
Wow echt geil, dass du dir die mühe gemacht hast dieses Plugin zu entwerfen :). Wie bekomme ich dass nun auch unter der categorie.php zum laufen?
Ersetze
durch
Das lässt sich so weiterführen, die '||' stehen in PHP für 'oder', heisst hier also 'wenn Hauptseite oder Kategoriearchiv'.
Alle Conditional Tags gibt es hier. Kleiner Auszug:
is_single(), is_page(), is_search(), is_feed(), is_archive(), is_date(),...
Grüsse
Danke für deine rasche Hilfe :wink:
Jetzt nur noch ein Problem mit der Version 0.2 ...immer wenn ich bearbeiten will oder was posten möchte kommt dieser Fehler
Warning: Cannot modify header information - headers already sent by (output started at /home/ddlporta/public_html/page3/wp-content/plugins/ShortenMyTitles2.php:1) in /home/ddlporta/public_html/page3/wp-includes/pluggable.php on line 694
Woran liegt das?:(
Hast du vor dem <?php noch ein Leerzeichen, Leerzeile oder die Datei mit einem Editor als 'UTF8 mit BOM' gespeichert ?
Nein ich hab nur if ( home ()) durch das andere ersetzt mehr nicht.
Ich habs direkt per Wordpress im Plugin menü ersetzt
- Versuchs nochmal offline, ich trau den ganzen WP-Editoren nicht :)
- Poste bitte hier nochmal die betreffende Zeile
Also ich denke Version 0.2 funktioniert nicht so ganz ich hab es nochmal ohne das ersetzen versucht, der Fehler bleibt bestehen. :(
Also muss ich bei der Codierung UTF-8 auswählen?
Hmm, habs nochmal hier getestet, funktioniert. Bei Post-Anzeige, Post-speichern, Post-veröffentlichen keinerlei Fehlermeldung.
Hab jetzt mal das is_category für dich eingebaut und das Ganze als ZIP angehängt.
Jetzt gehts danke dir vielmals :-D
Gerne.
Zur Frage: Ja, UTF8, ausserdem ganz wichtig ohne BOM. Sonst hätte man 3 unsichtbare Zeichen am Anfang der Datei die obigen Fehler verursachen können. Kann man in vielen Editoren als Speicherformat einstellen.
Nein ich hab nur if ( home ()) durch das andere ersetzt mehr nicht.
Ich habs direkt per Wordpress im Plugin menü ersetzt
Es muss aber is heißen, und nicht if!
Es muss aber is heißen, und nicht if!
Das wäre dann
, was nicht stimmt. Bitte nicht noch zusätzlich Verwirrung schaffen :oops:
Nein er hat gemeint das ich das if ( is_home ()) vergessen habe also das "is" in der if anweisung. Mehr nicht :mrgreen:
ZitatANdere Möglichkeit: Ähnlich wie im Plugin können im Theme bei Postanzeige (index.php, page.php, single.php, archive.php,...) ohne Plugin direkt die <?php the_title(); ?>-Ausgaben mit substring() 'vorbehandelt' werden.
Dürfte ich erfahren wie das mit substring() geht? Ich möchte meinen <?php wp_get_archives('type=monthly&show_post_count=1'); ?> auf eine bestimmte Zeichenlänge kürzen... Kannst Du mir helfen?
Hat sich erledigt, dank diesem Beitrag:
http://forum.wordpress-deutschland.org/design/31265-w…-begrenzen.html
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!