Postauszug mit wpdb-Abfrage anzeigen

Ich benutze eine modifizierte Version des Codes von einer Frage ( WordPress Beiträge gruppiert nach Monat ), um meine Beiträge nach Jahr zu gruppieren.

Alles funktioniert gut, aber ich habe Probleme, den Post-Auszug für die Posts anzuzeigen. Hier ist mein aktueller Code: Pastebin

Ich konnte den Post-Inhalt anzeigen lassen, indem ich post_content anstelle von post_excerpt sowohl in der Abfrage als auch in der Ausgabe verwendete, aber der Auszug wollte einfach nicht angezeigt werden. Ich habe auch versucht, einfach mit the_excerpt(); und andere Methoden, um den Ausschnitt ohne Glück zu erhalten.

Ich schätze jede Hilfe.

Solutions Collecting From Web of "Postauszug mit wpdb-Abfrage anzeigen"

Ich denke, Ihr post_excerpt Feld ist leer und Sie müssen einen Auszug aus dem post_content .

Ich stimme @tf mit der allgemeinen WP_Query(), have_post(), the_post(), the_excerpt() des Schleifens zu.

Ich möchte nur erwähnen, dass WordPress mit der praktischen wp_trim_words() -function wp_trim_words() , die zum Verkürzen von Textstrings verwendet werden kann.

Außerhalb der Schleife kann man auch eine benutzerdefinierte Version von wp_trim_excerpt() :

 function my_trim_excerpt( $text, $length = 55, $more = ' […]' ) { $text = strip_shortcodes( $text ); $text = apply_filters( 'the_content', $text ); $text = str_replace(']]>', ']]>', $text); $excerpt = wp_trim_words( $text, $length, $more ); return $excerpt; } 

Wo es sein kann, benutze es so:

 echo my_trim_excerpt( $mylongtext ); 

oder

 echo my_trim_excerpt( $mylongtext, 40, ' […]' ); 

Also wenn dein Text ist:

Speck ipsum dolor sitzen amem Trommelstock Turducken Lendenbraten, jowl tail Wurst Schinken hock Flankenschenkel Schweinefleisch kielbasa Rindfleisch Hamburger leberkas. Zunge Rindfleisch Rippen Schinken Hamburger Fettback Chuck Schweinebauch Schulter Biltong Wurst Tenderloin Schweine Porchetta Kuh. Kielbasa kevin leberkas kurzes Lende Andouille Schweinefleisch. Schweinebauch Schweinefleisch kurze Rippen Speck Jerky Wild, Spare Ribs Brisket Wurst Flanke. Kielbasa Salamischinken hock leberkas döner. Wurst Rinderfilet Hirsch Döner Chuck. Wurst Rinderzunge, Chuck Schwein Truthahn Schwein Landjaeger Porchetta Schweinebauch Biltong Tri-Tipp.

dann:

 echo my_trim_excerpt( $longbacontext, 10, ' [enough bacon]' ); 

wird es verkürzen zu:

Speck ipsum dolor sit amem Trommelstock Turducken Lenden Speck, bowl [genug Speck]

Sie sollten wirklich native WordPress-functionen verwenden ( WP_Query , have_posts , the_post the_excerpt etc.)!

Wenn Sie jedoch bei Ihrem aktuellen Ansatz bleiben möchten, sollten Sie Folgendes tun:

 echo apply_filters('the_excerpt', $theid->post_excerpt); 

Ich habe es anders gemacht. Ich habe die Post-ID übergeben, um den Post zu erhalten, und dann den post_excerpt daraus entnommen. Abschließend überprüft, ob es einen Satz Auszug gibt? Wenn dies der wp_trim_words() , zeigen Sie den Auszug an, aber falls nicht, zeigen Sie den Post-Inhalt an, aber steuern Sie die Anzahl der Wörter mit wp_trim_words() .

 < ?php //Post ID is stored in $post_id, was grabbed from a custom $wpdb query $queried_post = get_post( $post_id ); //get the specific post only $queried_excerpt = $queried_post->post_excerpt; // the excerpt $queried_content = $queried_post->post_content; // the content echo empty( $queried_excerpt ) ? wp_trim_words($queried_content, 20) : $queried_excerpt; ?> 

benutzen

 < ?php echo $theid->post_excerpt; ?> 

Anstatt von

 < ?php echo $theid->the_excerpt; ?> 

Dazu müssen Sie im Post-Editor einen Auszugstext aus dem Auszug Metabox eingeben. Wenn Sie dies tun, wird nur der Auszugswert im Feld post_excerpt der Tabelle wp_posts gespeichert.