Holen Sie sich einen Auszug mit get_the_excerpt außerhalb einer Schleife
-
-
ok,habeesmit "my_excerpt ($post->post_content,get_the_excerpt ())" undmit der Funktion "my_excerpt ()" von http://wordpress.stackexchange.com/questions/6961/using-wp-trim-excerpterhalten-Um den Auszug außerhalb der Schleife zubekommenok, got it using `my_excerpt($post->post_content, get_the_excerpt())` and using the `my_excerpt()` function from http://wordpress.stackexchange.com/questions/6961/using-wp-trim-excerpt-to-get-the-excerpt-outside-the-loop
- 0
- 2011-08-24
- ariel
-
Bittefügen Sieeine Lösung hinzu,die Sie als Antwortgefunden haben,damit diese Sitenicht als unbeantwortete Frage verfolgt wird.:) :)Please add solution you came up with as an answer, so this doesn't haunt site as unanswered question. :)
- 3
- 2011-09-11
- Rarst
-
Verwenden Sieeinfach die Funktion "the_post ()" (funktioniert auchmit einereinzelnen Post-Vorlage),bevor Sie "get_the_excerpt ()" aufrufen. Dadurch werden dieerforderlichen Datenfür Sieeingerichtet.Just use `the_post()` (it works on single post template too) function before you call `get_the_excerpt()` it will setup necessary data for you.
- 0
- 2014-09-18
- Sisir
-
9 Antworten
- Stimmen
-
- 2011-09-13
hatesmit
my_excerpt($post->post_content, get_the_excerpt())
undmit der Funktionmy_excerpt()
von Verwenden Sie wp_trim_excerpt,umthe_excerpt () außerhalb der Schleife zuerhaltengot it using
my_excerpt($post->post_content, get_the_excerpt())
and using themy_excerpt()
function from Using wp_trim_excerpt to get the_excerpt() outside the loop-
Nur-Link-Antworten sindnichtgut.Kopieren Sie hier denentsprechenden Code.Wenn dieser Link unterbrochenist,diese Sitenicht verfügbarist,hat diese Antwort keinen Wert.Link-only answers are no good. Copy the relevant code here. When that link is broken, that site is down / gone, then this answer has no value.
- 2
- 2014-06-18
- random_user_name
-
Es hatperfektfürmichfunktioniert!It worked perfectly for me!
- 0
- 2017-07-24
- Saikat
-
- 2014-06-18
Ich habe diese Fragegefunden,alsichnachgesehen habe,wie dies ohne das Post-Objektgemacht werden kann.
Meine zusätzliche Forschungergab diese raffinierte Technik:
$text = apply_filters('the_excerpt', get_post_field('post_excerpt', $post_id));
I found this question when looking how to do this without the post object.
My additional research turned up this slick technique:
$text = apply_filters('the_excerpt', get_post_field('post_excerpt', $post_id));
-
Dies sollte als Antwort akzeptiert werden,da dies dieempfohlene Methodeist,um Daten aus der Schleife zu ziehen.Erfordert auch keinebenutzerdefinierte Funktion oder das Überschreiben derglobalen Variablen "$post".This should be accepted as answer as it's the recommended way to pull data outside the loop. Also doesn't require any custom function or overriding of the `$post` global variable.
- 1
- 2015-06-16
- MacK
-
esgibt eine leere Zeichenfolge zurück.it return empty string.
- 4
- 2016-01-20
- Kyaw Tun
-
@KyawTun -esfunktioniert,solange "$post_id"gesetztist (wasist der Wert von "$post_id"? UND "$post_id"isteine gültige,legitime Post-ID.@KyawTun - it works, so long as `$post_id` is set (what is the value of `$post_id`? AND `$post_id` is a valid, legitimate post ID.
- 1
- 2016-01-20
- random_user_name
-
@cale_b Danke.Ich verwende die Abfrageget_posts underhalte die ID aus dem resultierenden Array.Das Post-Objekt hatpost_title,post_content,ID usw. Funktioniertjedochnicht.@cale_b Thanks. I use get_posts query and get ID from the resulting array. The post object does have post_title, post_content, ID, etc. But not working.
- 2
- 2016-01-21
- Kyaw Tun
-
Wenn Sie NUR den TEXT undnicht das
-Tagbenötigen,dasim Filter_excerptenthaltenist,verwenden Sie den Filter "get_the_excerpt",sodass der obige Filter wiefolgt lautet: $text=apply_filters ('get_the_excerpt',get_post_field ('post_excerpt',$post_id));Dadurcherhalten Sienur den RAW-Text,den Sie aneinerbeliebigen Stellein Ihremeigenen Markupeinfügen können.
If you need JUST the TEXT and nottag which is included with the_excerpt filter, then use "get_the_excerpt" filter, so that above filter becomes: $text = apply_filters('get_the_excerpt', get_post_field('post_excerpt', $post_id)); this will give you just the RAW text you can insert anywhere in your own markup.
- 0
- 2016-05-20
- Mohsin
-
Funktioniert auchbei mirnicht.Denken Sie daran: "Der Auszug des Beitrags. Diesistentwederein vom Benutzerbereitgestellter Auszug,der unverändert zurückgegeben wird,odereine automatischgenerierte,wortgezählte,verkleinerte Version desgesamten Beitragsinhalts."Könntefür den vom Benutzerbereitgestelltenfunktionieren?Ich habenach dem automatischgenerierten Auszuggesucht.Doesn't work for me either. Remember: "the excerpt of the post. This is either a user-supplied excerpt, that is returned unchanged, or an automatically generated word-counted trimmed-down version of the full post content." Might work for the user-supplied one? I was looking for the automatically-generated excerpt.
- 0
- 2019-03-20
- Fabien Snauwaert
-
- 2012-06-08
Da Sie anscheinendbereits das Post-Objekt haben,für das Sie den Auszugbenötigen,können Sieeinfach die Arbeiterzwingen:
setup_postdata( $post ); $excerpt = get_the_excerpt();
Die Funktion
setup_postdata()
globalisiert das Objekt$post
und stelltesfür die reguläre alte Schleifenfunktion zur Verfügung.Wenn Sie sichinnerhalb der Schleifebefinden,rufen Siethe_post()
auf undes werden die Dingefür Sieeingerichtet ... außerhalb der Schleifemüssen Sie siemanuellerzwingen.Since it seems you already have the post object you need the excerpt for, you can just force things to work:
setup_postdata( $post ); $excerpt = get_the_excerpt();
The
setup_postdata()
function will globalize the$post
object and make it available for regular old loop function. When you're inside the loop, you callthe_post()
and it sets things up for you ... outside of the loop you need to force it manually.-
Diesfunktioniert aber: "Siemüsseneinen Verweis auf dieglobale Variable" $post "übergeben,andernfallsfunktionieren Funktionen wie"the_title () "nicht richtig." `global $post; $post=$post_object; setup_postdata ($post); $excerpt=get_the_excerpt ();`This works but: "You must pass a reference to the global `$post` variable, otherwise functions like `the_title()` don't work properly." `global $post;$post = $post_object;setup_postdata( $post );$excerpt = get_the_excerpt();`
- 1
- 2017-01-19
- deach
-
`setup_postdata ($post);` FTW !!!!`setup_postdata($post);` FTW!!!!
- 0
- 2017-04-30
- squarecandy
-
- 2012-06-08
Versuchen Sie Folgendes:
Erstellen Sieeine neue Funktionin functions.php und rufen Sie sie von überall auf.
function get_excerpt_by_id($post_id){ $the_post = get_post($post_id); //Gets post ID $the_excerpt = $the_post->post_content; //Gets post_content to be used as a basis for the excerpt $excerpt_length = 35; //Sets excerpt length by word count $the_excerpt = strip_tags(strip_shortcodes($the_excerpt)); //Strips tags and images $words = explode(' ', $the_excerpt, $excerpt_length + 1); if(count($words) > $excerpt_length) : array_pop($words); array_push($words, '…'); $the_excerpt = implode(' ', $words); endif; $the_excerpt = '<p>' . $the_excerpt . '</p>'; return $the_excerpt; }
Try this:
Create a new function in functions.php and then call it from wherever.
function get_excerpt_by_id($post_id){ $the_post = get_post($post_id); //Gets post ID $the_excerpt = $the_post->post_content; //Gets post_content to be used as a basis for the excerpt $excerpt_length = 35; //Sets excerpt length by word count $the_excerpt = strip_tags(strip_shortcodes($the_excerpt)); //Strips tags and images $words = explode(' ', $the_excerpt, $excerpt_length + 1); if(count($words) > $excerpt_length) : array_pop($words); array_push($words, '…'); $the_excerpt = implode(' ', $words); endif; $the_excerpt = '<p>' . $the_excerpt . '</p>'; return $the_excerpt; }
-
Ausgezeichnetfindemeinen Freund.Ich habenie verstanden,warum WordPresseine so kritische Funktion abgelehnt hätte.Diesbauteseffektiv von Grund aufneu auf,aberesfunktioniert.Angesichts der Häufigkeit,mit der wir den Auszug außerhalb der Schleifemit Funktionen wie Social-Sharing-Plugins verwenden,sollteer wahrscheinlichein Teil des Kernsbleiben.Excellent find my friend. I've never understood why WordPress would have deprecated such a critical function. This is effectively rebuilding it from scratch, but it works. Given how often we use the excerpt outside the loop with features like social sharing plugins, it probably should have remained a part of the core.
- 1
- 2014-05-15
- Imperative Ideas
-
Die Antwort von EAMannistein vielbesserer Ansatzfür dieses Problem,und dies sollte als diebeste Vorgehensweise angesehen werden.Bei diesem Ansatz werdenim Wesentlichen die Interna von Core dupliziert,anstatt die API zu verwenden.EAMann's answer is a much better approach to this problem, and the should be considered the best practice. This approach is basically duplicating Core's internals instead of using the API.
- 1
- 2015-03-24
- Ian Dunn
-
- 2016-05-20
Jetzt können Sieeinfach den
get_the_excerpt( $postID )
Funktion. Seit: WordPress 4.5.0 hat den Parameter $post
eingeführt.Now you can simply use the
get_the_excerpt( $postID )
function. Since: WordPress 4.5.0 introduced the$post
parameter.-
Dies sollteeine neue akzeptierte Antwort sein,da wir unsin der WP 4.5 + Ärabefinden.This should be new accepted answer since we are in WP 4.5 + era.
- 1
- 2016-06-13
- Matija Mrkaic
-
Diesfunktioniertnicht,wenn der Auszug leerist,da der Filter `wp_trim_excerpt` den Auszugfür den aktuellen Beitrag zurückgibt.This won't work if the excerpt is empty as the `wp_trim_excerpt` filter will return the excerpt for the current post.
- 18
- 2016-08-16
- Dylan
-
Weitere Informationen zu den Aussagen von @Dylanfinden Sie unter https://core.trac.wordpress.org/ticket/36934See https://core.trac.wordpress.org/ticket/36934 for details on what @Dylan said
- 9
- 2016-09-14
- kraftner
-
- 2012-11-25
Falls Sie das Post-Objektnicht haben,finden Sie hiereine kurze Funktion wie die von Withers.
function get_excerpt_by_id($post_id){ $the_post = get_post($post_id); $the_excerpt = $the_post->post_excerpt; return $the_excerpt; }
In case you don't have the post object, here's a short function like the one from Withers.
function get_excerpt_by_id($post_id){ $the_post = get_post($post_id); $the_excerpt = $the_post->post_excerpt; return $the_excerpt; }
-
Der Fragesteller hatjedochein Post-Objekt,wiein der Frage angegeben.But the asker has a post object as stated in the question.
- 0
- 2012-11-25
- fuxia
-
Korrigieren Siemich,wennichfalsch liege. Diese Methodegibt denmanuellen Auszug zurück,generiertjedochbei Bedarf keinenCorrect me if I'm wrong, this method will return the manual excerpt but **won't** generate one if needed
- 3
- 2014-11-07
- Bill
-
- 2014-09-30
Diesist der Fall,wenn Sie
get_the_excerpt()
außerhalb der Schleife verwendenmöchten:function custom_get_excerpt($post_id) { $temp = $post; $post = get_post($post_id); setup_postdata($post); $excerpt = get_the_excerpt(); wp_reset_postdata(); $post = $temp; return $excerpt; }
This is for when you want to use
get_the_excerpt()
outside the loop:function custom_get_excerpt($post_id) { $temp = $post; $post = get_post($post_id); setup_postdata($post); $excerpt = get_the_excerpt(); wp_reset_postdata(); $post = $temp; return $excerpt; }
-
Diesist der direkteste Weg,dies zutun. Ichbin mirjedochnicht sicher,obesin Bezug auf die Leistunggroßartigist.Dubekommstimmernochmeine +1This is the most direct way to do it.. Not sure it's great performance-wise though. You still get my +1
- 0
- 2014-11-07
- Bill
-
- 2017-05-15
Wenn Sie den Auszug automatisch aus dem Inhaltin einer Zeilegenerierenmöchten,können Sie
wp_trim_words funktioniertfolgendermaßen://30ist die Anzahl der Wörter hier $excerpt=wp_trim_words (get_post_field ('post_content',$post_id),30);
If you'd like to generate the excerpt automatically from the content in one line - you can use
wp_trim_words
function like this:// 30 is the number of words ehere $excerpt = wp_trim_words(get_post_field('post_content', $post_id), 30);
-
-
Bitte ** [bearbeiten] Sie Ihre Antwort ** undfügen Sieeine Erklärung hinzu: ** Warum ** könnte das das Problem lösen?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2018-03-14
- fuxia
-
Ich habeeinen Code,der
get_the_title()
aufruft,underfunktioniert,aberget_the_excerpt()
gibt leer zurück.Wie kanniches zum Laufenbringen?Dieser Codebefindet sichin einem Pluginnamens "WP Facebook Open Graph-Protokoll".Hierist der Teil,denich ändernmöchte:
Hier schlägt
has_excerpt
immerfehl undget_the_excerpt($post->ID)
funktioniertnichtmehr (veraltet).Wie kannich den Auszug dort anzeigen?
ps: Ich verwende auch das Plugin "Advanced Excerpt"