Wie man den ungefilterten Auszug erhält, ohne oder Auto-Excerpt

the_excerpt() einen Auszug zu erhalten, verwenden the_excerpt() Template-Tags the_excerpt() oder get_the_excerpt() . Ich versuche, nur den tatsächlichen Inhalt des Felds Auszug zu erhalten.

Wenn es einen Auszug gibt, möchte ich ihn vollständig anzeigen (ohne gekürzt oder angehängt zu werden). Wenn es keinen Auszug gibt, möchte ich nichts angezeigt werden.

Gibt es einen einfachen Weg, dies in WordPress zu tun?

Etwas wie das:

 $real_excerpt = ??? if ( $real_excerpt ) { echo $real_excerpt; } // shouldn't show anything if there isn't a custom excerpt 

Solutions Collecting From Web of "Wie man den ungefilterten Auszug erhält, ohne oder Auto-Excerpt"

Warum benutzt du nicht die globale Variable $post ? Es enthält ein Objekt mit dem Inhalt wie in der Zeile db, die diesem Beitrag entspricht. So verwenden Sie es:

 global $post; // If for some reason it's readily accessible, invoke it if($post->post_excerpt != '') { echo($post->post_excerpt); } 

Oder:

 $my_post = get_post($post_id); if($my_post->post_excerpt != '') { echo($my_post->post_excerpt); } 

Sehr einfach, aber lassen Sie es uns wissen, wenn Sie Schwierigkeiten haben, es zum Laufen zu bringen.

Rückverfolgung:

the_excerpt()

Wenn Sie sich die Quelle von the_excerpt() , finden Sie die folgende functionsdefinition:

 function the_excerpt() { echo apply_filters('the_excerpt', get_the_excerpt()); } 

Dies bedeutet, dass get_the_excerpt() den einfachen ungefilterten Inhalt enthält.

get_the_excerpt()

Wenn Sie dann die Quelle von get_the_excerpt() , finden Sie Folgendes:

 function get_the_excerpt( $deprecated = '' ) { if ( !empty( $deprecated ) ) _deprecated_argument( __FUNCTION__, '2.3' ); global $post; $output = $post->post_excerpt; if ( post_password_required($post) ) { $output = __('There is no excerpt because this is a protected post.'); return $output; } return apply_filters('get_the_excerpt', $output); } 

Also gibt es wieder Filter, die zu get_the_excerpt() hinzugefügt wurden.

Standardfilter & wp_trim_excerpt()

Alle ~/wp-includes/default-filters.php , die an etwas angehängt sind, können in ~/wp-includes/default-filters.php .

Dort findest du (mit WP Version 3.4) folgenden Filter: wp_trim_excerpt() in Zeile # 147 .

Die function wp_trim_excerpt() sieht von innen wie folgt aus:

 function wp_trim_excerpt($text = '') { $raw_excerpt = $text; if ( '' == $text ) { $text = get_the_content(''); $text = strip_shortcodes( $text ); $text = apply_filters('the_content', $text); $text = str_replace(']]>', ']]>', $text); $excerpt_length = apply_filters('excerpt_length', 55); $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]'); $text = wp_trim_words( $text, $excerpt_length, $excerpt_more ); } return apply_filters('wp_trim_excerpt', $text, $raw_excerpt); } 

Was sind unsere Möglichkeiten?

Sie können jede dieser functionen mit allen unerwünschten Filtern verwenden, indem Sie einfach die Filter entfernen. Das bedeutet aber auch, dass du sie von allem anderen entfernen würdest.

Der Aufruf der Ebene ->excerpt , gibt Ihnen in jedem Fall einen Auszug – außer wenn es keinen gibt. Das bedeutet, dass Sie scripts und CDATA Tags wie in dieser Antwort beschrieben einfügen können , aber auch die Post-Passwort-Prüfung durchführen und alle erforderlichen Filter zurücknehmen müssen.