Obter trecho usando get_the_excerpt fora de um loop
-
-
OK,usei-o usando `my_excerpt ($pós->post_content,get_the_excerpt ())`e usando afunção `my_excerpt ()`my_excerpt () de http://wordpress.stackexchange.com/Questions/6961/using-wp-trim-excerpt-Para-get-the-trecência-fora-the-loopok, 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
-
Porfavor,adicione solução que você criou como uma resposta,entãoissonão assombra o site comoperguntanão respondida.:)Please add solution you came up with as an answer, so this doesn't haunt site as unanswered question. :)
- 3
- 2011-09-11
- Rarst
-
Basta usar `the_post ()` (elefuncionanomodelo depostagem únicatambém) Função antes de ligar `get_the_excerpt ()` ') `vai configurar dadosnecessáriospara você.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 respostas
- votos
-
- 2011-09-13
Consegui usando
my_excerpt($post->post_content, get_the_excerpt())
e usando omy_excerpt()
função de yusing wp_trim_excerptpara obterthe_excerpt ()fora do loopgot 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-
Respostas somente de linknão sãoboas.Copie o código relevante aqui.Quandoesse link é quebrado,esse siteestáindo/ido,entãoesta respostanãotem valor.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
-
Funcionouperfeitamenteparamim!It worked perfectly for me!
- 0
- 2017-07-24
- Saikat
-
- 2014-06-18
Eu acheiestapergunta ao olhar comofazerisso sem o objetopost.
Minhapesquisa adicional apareceuestatécnica slick:
$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));
-
Isso deve ser aceito como resposta,pois é amaneira recomendada deextrair dadosfora do loop.Tambémnão requernenhumafunçãopersonalizada ou substituição da variávelglobal `$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
-
Devolva a corda vazia.it return empty string.
- 4
- 2016-01-20
- Kyaw Tun
-
@Kyawtun -funciona,desde que "$post_id"esteja definido (qual é o valor de `$post_id`e` $post_id` é um ID depostagem legítima@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 Obrigado.Eu uso consultaget_postse obter ID damatriz resultante.Opós-objetotem post_title,post_content,id,etc.masnãoestáfuncionando.@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 vocêprecisar apenas otextoe não
tag queestáincluídonofiltrothe_excerpt,use ofiltro "get_the_excerpt",para que ofiltro acima setorne: $text=apply_filters ('get_the_excerpt',get_post_field ('post_excerpt',$post_id));Isso lhe dará apenas otextobruto que vocêpodeinserirem qualquer lugarem suaprópriamarcação.
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
-
Nãofuncionaparamim também.Lembre-se: "Otrecho dopost. Este é umtrechofornecidopelo usuário,que é retornadoinalterado ou uma versão regulada debaixagerada automaticamente contadapelapalavra do conteúdototal dopost."Podefuncionarpara o usuáriofornecido?Euestavaprocurandopelotrechogerado 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
Comoparece que vocêjátem o objeto depostagem que vocêprecisa dotrecho,vocêpode apenasforçar as coisas atrabalhar:
Setup_PostData ($post); $ Trescer=get_the_excert ();
O
Setup_PostData () Função Globalizará o objeto
e disponibilizá-lopara afunção de loop antiga regular.Quando vocêestá dentro do loop,você chama$post the_post ()
e configura as coisaspara você ...fora do loop que vocêprecisaforçá-lomanualmente.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.-
Issofunciona,mas: "Você devepassar uma referência à variável Global` $ Post`,caso contráriofunciona como `the_title ()`nãofuncionar corretamente. `Global $post; $post=$post_object; setup_postdata ($post); $trecmp=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
Tenteisto:
Crie umanovafunçãoem funções.phpe liguepara onde.
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; }
-
Excelenteencontrarmeu amigo.Eununcaentendiporque o WordPressteria depreciado umafunçãotão crítica.Isso éefetivamente reconstruindo-o apartir do zero,masfunciona.Dado com quefrequência usamos otrechofora do loop com recursos comoplugins de compartilhamento social,provavelmente deveriaterpermanecido umaparte donúcleo.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
-
A resposta de Eamann é uma abordagemmuitomelhorparaesseproblema,e deve ser considerada asmelhorespráticas.Essa abordagem ébasicamente duplicar osinternos donúcleoem vez de usar a 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
Agora vocêpode simplesmente usar o
get_the_excerpt( $postID )
função. Desde: WordPress 4.5.0introduziu oparâmetro$post
.Now you can simply use the
get_the_excerpt( $postID )
function. Since: WordPress 4.5.0 introduced the$post
parameter.-
Esta deve sernova resposta aceita desde queestamosno WP 4.5 + ERA.This should be new accepted answer since we are in WP 4.5 + era.
- 1
- 2016-06-13
- Matija Mrkaic
-
Issonãofunciona se otrechoestiver vazio como ofiltro `WP_TRIM_EXCERPT` retornará otrechopara opost atual.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
-
Veja https://core.trac.wordpress.org/ticket/36934para obter detalhes sobre o que @dylan disseSee https://core.trac.wordpress.org/ticket/36934 for details on what @Dylan said
- 9
- 2016-09-14
- kraftner
-
- 2012-11-25
Caso vocênãotenha o objeto Post,aquiestá umafunção curta como a de Witers.
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; }
-
Mas o Oitadortem um objetopós como declaradonapergunta.But the asker has a post object as stated in the question.
- 0
- 2012-11-25
- fuxia
-
Corrija-me seestivererrado,estemétodo retornará otrechomanual,mas **não vai **gerar um senecessárioCorrect 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
Isso épara quando você deseja usar
get_the_excerpt()
fora do 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; }
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; }
-
Esta é amaneiramais direta defazê-lo .. Nãotenho certeza de que é ótimo desempenho.Você ainda recebemeu +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 você quisergerar otrecho automaticamente do conteúdoem uma linha - vocêpode usar
wp_trim_words
Função comoesta:// 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);
-
-
Porfavor ** [editar] sua resposta **e adicione umaexplicação: ** Por que **poderia resolver oproblema?Please **[edit] your answer**, and add an explanation: **why** could that solve the problem?
- 0
- 2018-03-14
- fuxia
-
Eutenho um código que chama
get_the_title()
e funciona,masget_the_excerpt()
retorno vazio.Comopossofazerissofuncionar?Este códigoestá dentro de umplugin chamado "WP Facebook Open Graph Protocol".Aquiestá aparte que queromudar:
Aqui,
has_excerpt
semprefalhaeget_the_excerpt($post->ID)
nãofuncionamais (obsoleto).Então,comopossoexibir otrecho lá?
ps:estou usando oplugin "Advanced Trecmpt"também