webentwicklung-frage-antwort-db.com.de

Festlegen der Zeichenbegrenzung für the_content () und the_excerpt () in WordPress

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.

16
Thomas

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 .

27
richsage

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>'

25
Rvervuurt

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) . " […]";
} 
15
bfred.it

wp_trim_words Diese Funktion schneidet den Text auf eine bestimmte Anzahl von Wörtern ab und gibt den zugeschnittenen Text zurück.

Beispiel:-

echo wp_trim_words( get_the_content(), 40, '...' );
8

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);
3
Bhavin Suvaliya

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);
?>

php substr () - Funktion

php strip_tags () Funktion

1
waLL e

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;
  }

}
0
Mohammed Sufian
<?php 
echo apply_filters( 'woocommerce_short_description', substr($post->post_excerpt, 0, 500) ) 
?>
0
Ali Tariq

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 );
0
Aamer Shahzad