Ich verwende ein Thema mit einer Zeichenbegrenzung für Shortpost und [...] zeige am Ende der Zeichenbegrenzung.
Ich möchte dies entfernen, suche also nach the_excerpt();
und ersetze durch the_content();
Das Problem wird mit normalem Inhalt behoben, es gibt jedoch immer noch ein Problem mit dem Typ des Bildposts, und es gibt <?php the_excerpt(); ?>
, dass sich mein Shortpost beim Ändern wie ein vollständiger Post verhält und sich nicht auf die Länge des Posts bezieht.
Ich versuche alle PHP Dateien im Theme zu öffnen und suche nach Schlüsselwörtern wie: limit, length, excerpt for find wo ist der Code, der die Länge des Shortposts definiert und suche sogar nach "[...]" in Alle Dateien und Sprachen, aber ich weiß nicht, woher das kommt.
Aber alles, was ich finde, ist eine Codezeile in function.php
if ( ! function_exists( 'string_limit_words' ) ) :
function string_limit_words($str, $limit = 18 , $need_end = false) {
$words = explode(' ', $str, ($limit + 1));
if(count($words) > $limit) {
array_pop($words);
array_Push($words,'...');
}
return implode(' ', $words);
}
endif;
Und wenn ich 18 steige, ändert sich nichts!
Welchen Code muss ich suchen?
Der Kodex ist dein Freund und sollte deine erste Anlaufstelle sein :-)
Der [...]
wird durch the_excerpt()
hinzugefügt. Es wird ein Filter mit der Bezeichnung excerpt_more
mitgeliefert, der speziell zum Anpassen des nach dem Auszug gelesenen Texts enthalten ist
Gehen Sie folgendermaßen vor, um den [...]
nach dem Auszugstext zu entfernen
function new_excerpt_more( $more ) {
return '';
}
add_filter('excerpt_more', 'new_excerpt_more');
Wie andere bereits betont haben, ist die Verwendung des excerpt_more
-Filter-Hooks der richtige Weg.
Ich wollte nur hinzufügen, dass Sie keine Funktion schreiben müssen, die eine leere Zeichenfolge zurückgibt. WordPress hat einige eingebaute Funktionen, um wahr, falsch, null, null, leere Zeichenfolge oder leeres Array zurückzugeben.
In diesem Fall brauchen wir __ return_empty_string ()
Sie können diesen Code in Ihr Plugin oder in die functions.php Ihres Themes einfügen:
<?php
// This will add a filter on `excerpt_more` that returns an empty string.
add_filter( 'excerpt_more', '__return_empty_string' );
?>
das ist arbeit für mich!
function change_excerpt( $text )
{
$pos = strrpos( $text, '[');
if ($pos === false)
{
return $text;
}
return rtrim (substr($text, 0, $pos) );
}
add_filter('get_the_excerpt', 'change_excerpt');
Versuchen Sie, eine neue Funktion in Ihrem functions.php
zu erstellen:
function custom_excerpt() {
$text=preg_replace( "/\\[…\\]/",'place here whatever you want to replace',get_the_excerpt());
echo '<p>'.$text.'</p>';
}
Dann nutzen Sie die neue Funktion auf Ihrer Seite.
Sie sollten dies zu Ihrem functions.php
hinzufügen
function custom_excerpt_more( $more ) {
return '';//you can change this to whatever you want
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );
Die Verwendung von the_excerpt
hat außerdem den Vorteil, dass der Inhalt automatisch bereinigt und alle Bilder sowie andere HTML-Tags gelöscht werden.
Sie können hier mehr lesen
Wenn Sie auch die Länge des Ausschnitts ändern möchten, können Sie diesen Ausschnitt zu Ihrem functions.php
hinzufügen:
function custom_excerpt_length( $length ) {
return 20;//change the number for the length you want
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
Sie können mehr darüber lesen hier
'excerpt_more' ist ein WordPress-Hook. Es wird der Inhaltsauszug zurückgegeben. Um den [...] nach dem Auszugstext zu entfernen, können Sie wie folgt oder Ihre benutzerdefinierten Anforderungen leer zurückgeben. Verwenden Sie diesen Code auf function.php
function custom_excerpt_more( $excerpt ) {
return '';
}
add_filter( 'excerpt_more', 'custom_excerpt_more' );