Wie kann der excerpt_more-Filter auf den eigentlichen Post-Auszug angewendet werden?

In der function get_blog_excerpt () unten funktioniert der excerpt_more-Filter perfekt, wenn der Post-Auszug nicht vorhanden ist. Wenn der Beitrag jedoch einen Auszug enthält, erhalte ich den Link “Mehr lesen” nicht.

Ich verstehe, dass the_excerpt zunächst prüft, ob ein Post-Auszug vorhanden ist, was in Ordnung ist, aber ich möchte, dass der Link “Mehr lesen” ebenfalls darauf angewendet wird.

Was muss ich ändern, damit der excerpt_more in allen Fällen zutrifft?

function get_blog_excerpt(){ add_filter('excerpt_length', 'ce4_excerpt_length'); add_filter('excerpt_more', 'ce4_excerpt_more'); return the_excerpt(); } function ce4_excerpt_length($length) { return 150; } function ce4_excerpt_more($more) { global $post; return '...ID) . '">Read More'; } function get_blog_links(){ global $post; setup_postdata($post); $myposts = get_posts($args);echo ''; } 

Der obige Code befindet sich in der Datei functions.php

Der folgende Code befindet sich in der Datei archive.php

 term_id){ get_blog_links(); } else { get_category_links(); } } ?> 

Solutions Collecting From Web of "Wie kann der excerpt_more-Filter auf den eigentlichen Post-Auszug angewendet werden?"

Ich gehe davon aus, dass du get_blog_excerpt() in deiner Vorlage irgendwo get_blog_excerpt() ?

Wenn ja, was passiert, wenn Sie einfach the_excerpt() aufrufen und dann die beiden add_filter() -Aufrufe aus der Containerfunktion herausziehen? ie functions.php würde einfach so aussehen:

 function ce4_excerpt_length($length) { return 150; } add_filter('excerpt_length', 'ce4_excerpt_length'); function ce4_excerpt_more($more) { global $post; return '...Read More'; } add_filter('excerpt_more', 'ce4_excerpt_more'); 

Und in Ihrer Vorlage würden Sie einfach the_excerpt() aufrufen.

Wenn das funktioniert, dann vermute ich, dass Ihre Filter nicht angewendet werden – wahrscheinlich, weil sie in die Containerfunktion eingebunden sind.