Entfernen Sie Bilder von get_the_excerpt

Ich verwende eine benutzerdefinierte function, um einen Shortcode zu erstellen, der den neuesten Blogpost auf der Homepage einer Vorlage anzeigt. Aber ich versuche, keine Bilder anzeigen zu lassen.

Ich weiß, dass ich das Advanced Excerpt-Plugin verwenden kann, um Bilder entfernen zu lassen, aber das Problem ist, dass es auch Bilder aus dem index.php-Feed entfernt, den ich behalten möchte, der the_excerpt() in der Vorlage verwendet.

Hier ist meine benutzerdefinierte function, die den Shortcode erstellt:

 function my_recent_news() { global $post; $html = ""; $my_query = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => 4 )); if( $my_query->have_posts() ) : while( $my_query->have_posts() ) : $my_query->the_post(); $html .= "  "; endwhile; endif; wp_reset_query(); return $html; } add_shortcode( 'news', 'my_recent_news' ); 

Ich habe vorher schon mal was dazu gepostet:

Erhalten Sie einen Auszug ohne Bilder

aber die Lösung war, das Advanced Excerpt-Plugin zu verwenden, aber dafür versuche ich, den Auszug auf der Home- und der Blog-Feed-Seite zu verwenden, aber ich möchte das img Markup im Blog-Feed beibehalten und das IMG-Tag aus dem benutzerdefinierten Shortcode entfernen .

Ich habe versucht, nur die the_excerpt() in dieser benutzerdefinierten Shortcode-function zu verwenden, aber das scheint nur die ganze function zu brechen und einige wirklich seltsame Sachen anzuzeigen.

Ich bin mir nicht sicher, ob ich irgendwo einen Filter haben muss, um das auszuwischen oder was. Ich bin mir auch nicht sicher, ob, wenn ich einen Filter brauche, wohin würde das gehen? Vor der Schleife, nach der Schleife oder braucht es ein eigenes Argument?

Solutions Collecting From Web of "Entfernen Sie Bilder von get_the_excerpt"

Wenn Sie den Codex-Eintrag für get_the_excerpt() lesen, finden Sie get_the_excerpt() :

Wenn der Beitrag keinen Auszug enthält, wendet diese function wp_trim_excerpt auf den Post-Inhalt an und gibt diesen erzeugten String am Ende mit “[…]” zurück. wp_trim_excerpt wird über den Filter get_the_excerpt angewendet und kann entfernt werden.

Die function wp_trim_excerpt() :

Erzeugt bei Bedarf einen Auszug aus dem Inhalt.

Der scope des Auszugswortes beträgt 55 Wörter und wenn der Betrag größer ist, wird die Zeichenfolge ‘[…]’ an den Auszug angehängt. Wenn die Zeichenfolge weniger als 55 Wörter enthält, wird der Inhalt unverändert zurückgegeben.

Sie können entweder wp_trim_excerpt() auf den get_the_excerpt Filter get_the_excerpt oder es direkt ausgeben:

  $html .= "  "; 

Ok, also habe ich mehr gegraben und getestet und ich habe festgestellt, dass mit strip_tags() alle Formatierungen innerhalb von get_the_excerpt() .

Hier ist mein aktualisierter Code:

 function my_recent_news() { global $post; $html = ""; $my_query = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => 4 )); if( $my_query->have_posts() ) : while( $my_query->have_posts() ) : $my_query->the_post(); $html .= "  "; endwhile; endif; wp_reset_query(); return $html; } add_shortcode( 'news', 'my_recent_news' ); 

Ich habe das hinzugefügt, um alle Hyperlinks innerhalb des auszugebenden Beitrags zu erhalten.

Damit kann ich das Markup mit der Blog-Feed-Seite zusammen mit dem Advanced Excerpt-Plugin beibehalten, um die Länge zu verkürzen und was nicht.