Ich erstelle ein Thema, das möglicherweise Dutzende von Beiträgen auszugsweise auf der Homepage anzeigt. Ich habe keine manuellen Auszüge für alle meine Beiträge, daher $post->post_excerpt
sind viele Beiträge leer. Für den Fall, dass es keinen manuellen Auszug gibt, würde ich gerne die integrierte Funktion get_the_excerpt () verwenden, die jedoch außerhalb der Schleife nicht verfügbar ist.
Wenn man die Funktion aufspürt, sieht es so aus, als würde sie wp_trim_excerpt aus wp-includes / formatting.php verwenden, um spontan Ausschnitte zu erstellen. Ich rufe es in meinem Code so auf wp_trim_excerpt( $item->post_content )
, aber es gibt einfach den vollen Inhalt zurück. Mache ich etwas falsch?
Ich weiß, dass ich meine eigene Funktion erstellen kann, um einen Auszug zu erstellen, aber ich verwende, wo immer möglich, integrierte Funktionen, um meinen Code mit anderen potenziellen Plugins / Filtern kompatibel zu halten.
http://adambrown.info/p/wp_hooks/hook/wp_trim_excerpt?version=3.0&file=wp-includes/formatting.php
$myvar = apply_filters( 'the_excerpt', $myvar );
Antworten:
Ab WP 3.3.0
wp_trim_words()
ist dies hilfreich, wenn Sie den Inhalt abrufen können, für den Sie einen Auszug erstellen möchten. Ich hoffe, das ist hilfreich für jemanden und erspart Ihnen die Erstellung Ihrer eigenen Wortzählfunktion.http://codex.wordpress.org/Function_Reference/wp_trim_words
quelle
wp_trim_excerpt()
hat ein wenig merkwürdige Mechanik - wenn irgendetwas an ihn weitergegeben wird, dann tut er nichts.Hier ist die grundlegende Logik dahinter:
get_the_excerpt()
prüft auf manuellen Auszug;wp_trim_excerpt()
läutet ein, wenn es keinen manuellen Auszug gibt und macht einen aus Inhalt oder Teaser.Beide sind eng an globale Variablen gebunden und so Loop.
Außerhalb der Schleife ist es besser, Code zu entfernen
wp_trim_excerpt()
und eine eigene Trimmfunktion zu schreiben.quelle
Aktualisieren:
Hier ist eine Ableitung von wp_trim_excerpt (), die ich verwendet habe. Funktioniert perfekt. Abgeleitet von Wordpress Version 3.0.4
quelle
Hier ist meine Einstellung zu einem "trim_excerpt", der das Post-Objekt oder eine Post-ID als Parameter verwendet.
Offensichtlich basierend auf dem, was im Kern enthalten ist. Ich weiß nicht, warum dies (und get_the_author ()) keine Nicht-Schleifen-Entsprechungen haben.
quelle
+1 bis Rast. Es ist sehr seltsam, dass es so etwas wie get_the_excerpt ($ post-> ID) nicht gibt, wenn es ganz offensichtlich sein sollte, dass es so sein sollte. Wie auch immer, hier ist wp_trim_excerpt () in WordPress-Version 3.0.4:
http://core.trac.wordpress.org/browser/tags/3.0.4/wp-includes/formatting.php
Sie können in Zeile 1826 sehen, dass es über get_the_contents mit der globalen Variablen $ post verknüpft ist. Und ja, ich habe keine Ahnung, was sie dachten. Aber von hier aus ersetzen Sie get_the_content durch $ text in Ihrem eigenen my_excerpt, und es sollte sich auf ähnliche Weise verhalten.
quelle
Die Funktion get_the_content () würde den gesamten Inhalt zurückgeben, wenn $ more! = 0. Sie müssen die globale Variable $ more auf 0 setzen, um sicherzustellen, dass die Funktion get_the_content () einen Auszug zurückgibt.
Geänderte Funktion wp_trim_excerpt ():
quelle
Anhand der obigen Antworten anderer ist dies eine einfachere Antwort, die gut zu funktionieren scheint:
Ich benutze es in den
<meta>
Tags einer Funktion, um OpenGraph-Beschreibungen zu definieren. Also füge ich einfach hinzu:quelle