Ottieni un estratto usando get_the_excerpt fuori da un ciclo
-
-
ok,l'ho ottenuto usando `my_excerpt ($post->post_content,get_the_excerpt ())`e usando lafunzione `my_excerpt ()` da http://wordpress.stackexchange.com/questions/6961/using-wp-trim-excerpt-per-ottenere-l'estratto-fuori-dal-girook, 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
-
Perfavore aggiungi la soluzione che haitrovato come risposta,in modo che questonontormentiil sito come domanda senza risposta.:)Please add solution you came up with as an answer, so this doesn't haunt site as unanswered question. :)
- 3
- 2011-09-11
- Rarst
-
Usa semplicemente lafunzione `the_post ()` (funziona anche su unmodello dipost singolo)prima di chiamare `get_the_excerpt ()`,imposterài datinecessariperte.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 risposta
- voti
-
- 2011-09-13
ottenuto utilizzando
my_excerpt($post->post_content, get_the_excerpt())
e utilizzando lafunzionemy_excerpt()
da Utilizzo di wp_trim_excerptper ottenerethe_excerpt ()fuori dal ciclogot 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-
Le risposte di solo collegamentonon vannobene.Copiail codicepertinente qui.Quando quel collegamento èinterrotto,quel sito èinattivo/andato,allora questa rispostanon ha valore.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
-
Hafunzionatoperfettamenteperme!It worked perfectly for me!
- 0
- 2017-07-24
- Saikat
-
- 2014-06-18
Hotrovato questa domanda cercando comefarlo senza l'oggettopost.
Lamia ricerca aggiuntiva haportato a questatecnicaintelligente:
$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));
-
Questo dovrebbeessere accettato come rispostain quanto èilmodo consigliatoperestrarrei dati al difuori del ciclo.Inoltrenon richiede alcunafunzionepersonalizzata o sovrascrittura della variabileglobale "$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
-
restituisce una stringa vuota.it return empty string.
- 4
- 2016-01-20
- Kyaw Tun
-
@KyawTun -funziona,fintanto che "$post_id" èimpostato (qual èil valore di "$post_id"? E "$post_id" è un valido,legittimo ID delpost.@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 Grazie.Uso la queryget_postse ottengo l'ID dall'array risultante.L'oggettopost hapost_title,post_content,ID,ecc. Manonfunziona.@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
-
Se haibisogno SOLO del TESTOe non deltag
inclusonelfiltro_excerpt,usailfiltro "get_the_excerpt",in modo cheilfiltro sopra diventi: $text=apply_filters ('get_the_excerpt',get_post_field ('post_excerpt',$post_id));questoti darà soloiltesto RAW chepuoiinserire ovunqueneltuomarkup.
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
-
Nonfunzionaneancheperme.Ricorda: "l'estratto delpost. Questo è unestrattofornito dall'utente,che viene restituitoinvariato,oppure una versione ridotta con conteggioparolegenerata automaticamente del contenuto completo delpost."Potrebbefunzionareper quellofornito dall'utente?Stavo cercando l'estrattogenerato automaticamente.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
Dato che sembra chetu abbiagià l'oggettopostperil quale haibisogno dell'estratto,puoi semplicementeforzare le cose afunzionare:
setup_postdata( $post ); $excerpt = get_the_excerpt();
Lafunzione
setup_postdata()
globalizzerà l'oggetto$post
e lo renderà disponibileper lanormalefunzione di cicloprecedente.Quando sei all'interno del ciclo,chiamithe_post()
e imposta le coseperte ... al difuori del ciclo deviforzarlomanualmente.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.-
Funzionama: "Devipassare un riferimento alla variabileglobale` $post`,altrimentifunzioni come `the_title ()`nonfunzionano correttamente. " `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
Prova questo:
Crea unanuovafunzionein functions.phpe poi chiamala ovunque.
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; }
-
Eccellentetrovareilmio amico.Non homai capitoperché WordPress avrebbe deprecato unafunzione così critica.Questo lo staeffettivamente ricostruendo da zero,mafunziona.Data lafrequenza con cui utilizziamo l'estratto al difuori del ciclo confunzionalità comei plug-in di condivisione social,probabilmente sarebbe dovuto rimanere unaparte delnucleo.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
-
La risposta di EAMann è un approcciomoltomigliore a questoproblemae dovrebbeessere considerata lamigliorepratica.Questo approcciofondamentalmente duplicagliinterni di Coreinvece di utilizzare l'API.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
Orapuoi semplicemente utilizzare
get_the_excerpt( $postID )
funzione. Da allora: WordPress 4.5.0 haintrodottoilparametro$post
.Now you can simply use the
get_the_excerpt( $postID )
function. Since: WordPress 4.5.0 introduced the$post
parameter.-
Questa dovrebbeessere unanuova risposta accettatapoiché siamonell'era WP 4.5 +.This should be new accepted answer since we are in WP 4.5 + era.
- 1
- 2016-06-13
- Matija Mrkaic
-
Questononfunzionerà se l'estratto è vuotopoichéilfiltro `wp_trim_excerpt` restituirà l'estrattoperilpost corrente.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
-
Vedi https://core.trac.wordpress.org/ticket/36934peri dettagli su ciò che ha detto @DylanSee https://core.trac.wordpress.org/ticket/36934 for details on what @Dylan said
- 9
- 2016-09-14
- kraftner
-
- 2012-11-25
Nel casoin cuinon hai l'oggettopost,ecco unabrevefunzione come quella di 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; }
-
Mail richiedente ha un oggettopost comeindicatonella domanda.But the asker has a post object as stated in the question.
- 0
- 2012-11-25
- fuxia
-
Correggimi se sbaglio,questometodo restituirà l'estratto delmanualema **non **ne genererà uno senecessarioCorrect 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
Questo èper quando vuoi usare
get_the_excerpt()
fuori dal ciclo: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; }
-
Questo èilmodopiù direttoperfarlo .. Non sono sicuro che sia ottimo dalpunto di vista delleprestazioni.Hai ancorailmio +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
Se desiderigenerare l'estratto automaticamente dal contenutoin una riga,puoi utilizzare
wp_trim_words
funzionain questomodo:// 30 is the number of words ehere $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);
-
-
Perfavore ** [modifica] latua risposta **e aggiungi una spiegazione: **perché ** questopotrebbe risolvereilproblema?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2018-03-14
- fuxia
-
Ho un codice che chiama
get_the_title()
e funziona,maget_the_excerpt()
restituisce vuoto.Comepossofarlofunzionare?Questo codice sitrova all'interno di unplugin chiamato "protocollo WP Facebook Open Graph".Ecco laparte che voglio cambiare:
Qui,
has_excerpt
fallisce sempreeget_the_excerpt($post->ID)
nonfunzionapiù (deprecato).Allora,comeposso visualizzare l'estratto lì?
ps: sto usando ancheilplugin "Advanced Excerpt"