Wie stelle ich in WordPress ein Zeichenlimit für the_content () und the_excerpt () ein? Ich habe nur Lösungen für das Word-Limit gefunden - ich möchte in der Lage sein, die Anzahl der ausgegebenen Zeichen genau festzulegen.
Sie könnten eine Wordpress-Filter-Rückruffunktion verwenden. Erstellen Sie im Verzeichnis Ihres Themas eine Datei mit dem Namen functions.php
und fügen Sie Folgendes hinzu:
<?php
add_filter("the_content", "plugin_myContentFilter");
function plugin_myContentFilter($content)
{
// Take the existing content and return a subset of it
return substr($content, 0, 300);
}
?>
Die Funktion plugin_myContentFilter()
wird jedes Mal aufgerufen, wenn Sie den Inhalt eines Beitrags/einer Seite über the_content()
abfragen. Sie stellt den Inhalt als Eingabe bereit und verwendet den von Ihnen zurückgegebenen Inhalt für die nachfolgende Ausgabe oder andere Filterfunktionen.
Sie können dasselbe auch für the_exercpt()
- add_filter()
und dann für eine Funktion tun, die als Rückruf verwendet werden soll.
Weitere Informationen finden Sie in den Wordpress-Filterreferenzdokumenten .
Oder noch einfacher und ohne dass ein Filter erstellt werden muss: Verwenden Sie PHP mb_strimwidth
, um einen String auf eine bestimmte Breite (Länge) abzuschneiden. Stellen Sie einfach sicher, dass Sie eine der get_
-Syntaxen verwenden . Zum Beispiel mit dem Inhalt:
<?php $content = get_the_content(); echo mb_strimwidth($content, 0, 400, '...');?>
Dadurch wird die Zeichenfolge auf 400 Zeichen gekürzt und mit ...
..__ geschlossen. Fügen Sie einfach einen "read more" -Link am Ende hinzu, indem Sie mit get_permalink()
auf den Permalink zeigen.
<a href="<?php the_permalink() ?>">Read more </a>
Natürlich können Sie auch den read more
in der ersten Zeile erstellen. Dann ersetzen Sie einfach '...'
durch '<a href="' . get_permalink() . '">[Read more]</a>'
Dies gleicht auch HTML-Tags aus, damit sie nicht geöffnet bleiben und keine Wörter brechen.
add_filter("the_content", "break_text");
function break_text($text){
$length = 500;
if(strlen($text)<$length+10) return $text;//don't cut if too short
$break_pos = strpos($text, ' ', $length);//find next space after desired length
$visible = substr($text, 0, $break_pos);
return balanceTags($visible) . " […]";
}
wp_trim_words
Diese Funktion schneidet den Text auf eine bestimmte Anzahl von Wörtern ab und gibt den zugeschnittenen Text zurück.
echo wp_trim_words( get_the_content(), 40, '...' );
Für die Verwendung von Funktionen von the_content()
(zum Anzeigen des Hauptinhalts der Seite)
$content = get_the_content();
echo substr($content, 0, 100);
Für die Verwendung von Funktionen von the_excerpt()
(zum Anzeigen des kurzen Inhalts der Seite)
$excerpt= get_the_excerpt();
echo substr($excerpt, 0, 100);
Ersetzen Sie <?php the_content();?>
durch den nachstehenden Code
<?php
$char_limit = 100; //character limit
$content = $post->post_content; //contents saved in a variable
echo substr(strip_tags($content), 0, $char_limit);
?>
nur um zu helfen, wenn jemand die Beitragslänge bei home page
begrenzen möchte, dann kann unten stehender Code dazu verwendet werden ..
der untenstehende Code ist lediglich eine Änderung von @bfred.it
Sir
add_filter("the_content", "break_text");
function limit_text($text){
if(is_front_page())
{
$length = 250;
if(strlen($text)<$length+10) return $text; //don't cut if too short
$break_pos = strpos($text, ' ', $length); //find next space after desired length
$visible = substr($text, 0, $break_pos);
return balanceTags($visible) . "... <a href='".get_permalink()."'>read more</a>";
}else{
return $text;
}
}
<?php
echo apply_filters( 'woocommerce_short_description', substr($post->post_excerpt, 0, 500) )
?>
wp_trim_words()
Diese Funktion schneidet den Text auf eine bestimmte Anzahl vonwörtern ab und gibt den zugeschnittenen Text zurück.
$excerpt = wp_trim_words( get_the_content(), 40, '<a href="'.get_the_permalink().'">More Link</a>');
Ruft einen abgeschnittenen String mit der angegebenen width mit der mb_strimwidth()
php-Funktion ab.
$excerpt = mb_strimwidth( strip_tags(get_the_content()), 0, 100, '...' );
Verwenden der add_filter()
-Methode von WordPress für the_content
-Filterhaken.
add_filter( "the_content", "limit_content_chr" );
function limit_content_chr( $content ){
if ( 'post' == get_post_type() ) {
return mb_strimwidth( strip_tags($content), 0, 100, '...' );
} else {
return $content;
}
}
Verwendung der benutzerdefinierten PHP-Funktion zum Begrenzen von Inhaltszeichen.
function limit_content_chr( $content, $limit=100 ) {
return mb_strimwidth( strip_tags($content), 0, $limit, '...' );
}
// using above function in template tags
echo limit_content_chr( get_the_content(), 50 );