Obter o trecho por id
-
-
O queexatamente é "algum" do conteúdo?what exactly is "some" of the content?
- 0
- 2011-03-19
- kaiser
-
Afunção detrechono WordPress retorna otrecho de umpost.Se opostnãotiver umexcerto,ele retornará um certonúmero de caracteres do conteúdo seguidopor '...' ou 'Leiamais' ou qualquer que seja omodeloThe excerpt function in wordpress returns the excerpt of a post. If the post does not have an excerpt it returns a certain number of characters of the content followed by '...' or 'read more' or whatever the template provides
- 0
- 2011-03-19
- Robin I Knight
-
Não ser umapita,mas as regras comunitáriasnãopermitem assinaturase fechamentospadrão.Demodo a respeitar as regrase evitarter [Jeff Atwood] (http://stackexchange.com/about/management) Envie umamensagem severa depois deeditartodas as suasperguntas,pare de usar * "maravilhoso" * como umfechamento.* (Eporfavornão atirenomensageiro) *Not to be a PITA but community rules disallow signatures and standard closings. So as to abide by the rules and avoid having [Jeff Atwood](http://stackexchange.com/about/management) send you a stern message after editing all your questions, please stop using *"Marvellous"* as a closing. *(And please don't shoot the messenger)*
- 1
- 2011-03-19
- MikeSchinkel
-
10 respostas
- votos
-
- 2011-03-19
oi @robin I. Knight:
I Visualizar
get_the_excerpt ()
como umafunção com design legado.Como o uso do WordPress cresceu,hámuitos casos de usomais recentes ondenão seencaixa,mas onde asfunçõesmais recentespara obter dados diferentes são.Umexemplo é o usofreqüente de um$ args
matriz de opções defunção.Mas éfácil corrigirpara suasnecessidades.Aquiestá umafunção alternativa que vocêpode usar qual vocêpode colocarem qualquer lugarno arquivo
função robins_get_the_excerpt ($post_id) { postagemglobal; $ save_post=$post; $post=get_post ($post_id); $ Output=get_the_excerpt (); $post=$ save_post; Retornar $ Output; }
Eunãotestei,mastenho certeza que consegui certo.Seissonão atender às suasnecessidades,porfavorelaboree talvezeupossafazer outras sugestões.
Hi @Robin I. Knight:
I view
get_the_excerpt()
as a function with legacy design. As WordPress usage has grown there are many newer use-cases where it doesn't fit but where the newer functions for getting different data do. One example is the now frequent use of an$args
array of function options.But it's easy to fix for your needs. Here's an alternative function you can use which you can put anywhere in your theme's
functions.php
file:function robins_get_the_excerpt($post_id) { global $post; $save_post = $post; $post = get_post($post_id); $output = get_the_excerpt(); $post = $save_post; return $output; }
I've not tested it but am pretty sure I got it right. If this doesn't meet your needs please elaborate and maybe I can make other suggestions.
-
Funciona.Tipo de.Resultadosmuitoestranhos.É definitivamente realizando suafunção,mas os resultados sãoestranhos.Euestou usando-oem conjunto comget_postse por algummotivo otop 2 obterposts são sempre osmesmos.Aquiestá um linke você verá o que quero dizer.Olhepara os 4postsno lado direito.http://www.divethegap.com/update/community/feedback/2010/06/steve-riches/It works. Sort of. Very odd results. It is definitely performing its function but the results are odd. I am using it in conjunction with GET_Posts and for some reason the top 2 get posts are always the same. Here is a link and you will see what I mean. Look at the 4 posts on the right hand side. http://www.divethegap.com/update/community/feedback/2010/06/steve-riches/
- 0
- 2011-03-19
- Robin I Knight
-
@Robini Knight: Porfavor,poste seu código-fonte de loop como uma atualizaçãopara suapergunta;Émuito difícil de depurar código sem ver o código.Também épossível umplugin queestá causando oproblema;Tente desativá-los um de cada vez.@Robin I Knight: Please post your loop source code as an update to your question; it's very hard to debug code without seeing code. It's also possibly a plugin that is causing the problem; try disabling them one at a time.
- 0
- 2011-03-19
- MikeSchinkel
-
Códigofonte de loopem questão acima ^^Loop source code in question above ^^
- 0
- 2011-03-19
- Robin I Knight
-
BTWeumudei onome dafunçãoparaget_the_excerpt_id ($post_id)BTW I changed the name of the function to get_the_excerpt_id($post_id)
- 0
- 2011-03-20
- Robin I Knight
-
@Robini Knight - Eunão vejonadano seu loop,mas vocêpodetentar chamar `setup_postdata ($post)`noinício do seu loop,como @rarst sugere.Seissonãofuncionar,pode ser umplugin que vocêprecisa desativar;Vocêjátentouisso?E vocêprovavelmentenão quer chamá-lo de "get_the_excerpt_id ()"porque o WordPresspoderia adicionaressafunçãonofuturoe quebrar seu site.E vocêprovavelmentepoderiafazer sem afunçãoem seu loop usando `foreach ($ histórias como $ story):global $post;$post=$ story; `em vez disso.@Robin I Knight - I don't see anything in your loop, but you might try calling `setup_postdata($post)` at the beginning of your loop, as @Rarst suggests. If that doesn't work it might be a plugin you need to disable; have you tried that? And you probably don't want to call it `get_the_excerpt_id()` because WordPress could add that function in the future and break your site. And you could probably do without the function in your loop by using `foreach($stories as $story): global $post; $post = $story;` instead.
- 0
- 2011-03-20
- MikeSchinkel
-
- 2011-03-20
Amecânica dotrecho éextremamente confusa.Não é uma respostaprecisa à suapergunta,masem geral se vocêprecisarfazertags demodelo,específicopara loop,trabalhar com array retornadopor
get_posts()
vocêpodeemular loop assim:$stories = get_posts(); foreach ($stories as $post) { setup_postdata($post); // stuff } wp_reset_postdata();
The mechanics of excerpt are extremely confusing. It is not precise answer to your question but in general if you need to make template tags, specific to Loop, work with array returned by
get_posts()
you can emulate Loop like this:$stories = get_posts(); foreach ($stories as $post) { setup_postdata($post); // stuff } wp_reset_postdata();
-
E quanto a WP_RESET_QUERY ();?what about wp_reset_query(); ?
- 0
- 2012-01-27
- cwd
-
@cwd Se apenas usar o `Setup_PostData () Queryglobalnãofor afetadoe apenas os dados dapostagemprecisarem ser redefinidos.@cwd if only using `setup_postdata()` global query is not affected and only post data needs to be reset.
- 1
- 2012-01-27
- Rarst
-
Esta solução é a limpeza da liga do que armazenar opostem outro vare exigir outropost apenaspara obtê-loglobal.+1.This solution is allot cleaner than storing the post in another var and requering another post just to get it global. +1
- 0
- 2013-04-10
- Barry Kooij
-
Obrigado @rarst queme ajudou.Adicionando setup_postdata ($post);resolveumeusproblemasThanks @Rarst that helped me out. Adding setup_postdata($post); resolved my issues
- 0
- 2014-11-14
- Simon
-
- 2012-01-14
Há umanovafunção desde 3.3.0: wp_trim_words
Estou usandofora do loop da seguinteforma:
<?php if ( $post_id ) { $post = get_post( $post_id ); if ( $post ) { ?> <h2><?php echo $post->post_title; ?></h2> <p><em><?php echo wp_trim_words( $post->post_content ); ?></em></p> <p><strong>This article can only be read by subscribers.</strong></p> <?php } } ?>
Issonão épara ser confundido com wp_trim_excerpt que aparentemente sófunciona dentro do loop,já que chama o The_Content ()internamente.
There is a new function since 3.3.0: wp_trim_words
I'm using it outside the loop as follows:
<?php if ( $post_id ) { $post = get_post( $post_id ); if ( $post ) { ?> <h2><?php echo $post->post_title; ?></h2> <p><em><?php echo wp_trim_words( $post->post_content ); ?></em></p> <p><strong>This article can only be read by subscribers.</strong></p> <?php } } ?>
This is not to be confused with wp_trim_excerpt that apparently only works within the loop, since it calls the_content() internally.
-
- 2013-08-30
Apenaspara adicionar à resposta de Mikeschinkel,quepor algummotivonãofuncionariaparamim.Eutive que adicionar a linha SETUP_POSTDATAparafazerissofuncionar.
function get_the_excerpt( $post_id ){ global $post; $save_post = $post; $post = get_post($post_id); setup_postdata( $post ); // hello $output = get_the_excerpt(); $post = $save_post; return $output;
}
Estou assumindo se vocêestiver usandoissofora do loop,entãonão deveinterferir com outros setup_postdata acontecendo.
elogios
Just to add to MikeSchinkel's answer, which for some reason wouldn't work for me. I had to add the setup_postdata line to make it work.
function get_the_excerpt( $post_id ){ global $post; $save_post = $post; $post = get_post($post_id); setup_postdata( $post ); // hello $output = get_the_excerpt(); $post = $save_post; return $output;
}
I'm assuming if you're using this outside the loop then it shouldn't interfere with other setup_postdata going on.
Cheers
-
Eutentei a resposta de Mikeschinkele nãofuncionouparamim.Configurando os dadospostais otruque.Nomeu caso sem o 'setup_postdata' afunção retornou otítulo +trecho dopostpai.I tried MikeSchinkel's answer and it did not work for me. Setting up post data did the trick. In my case without the 'setup_postdata' the function returned the title+excerpt of the parent post.
- 0
- 2016-09-25
- turzifer
-
- 2013-05-02
Edifíciona resposta @maxime,estetrabalho?
$post = get_post( $id ); $excerpt = ( $post->post_excerpt ) ? $post->post_excerpt : $post->post_content;
Parece diretamenteparamim,masestoume perguntando seestouperdendo alguma coisa.
Building on @Maxime's answer, would this work?
$post = get_post( $id ); $excerpt = ( $post->post_excerpt ) ? $post->post_excerpt : $post->post_content;
It seems straight forward enough to me, but I'm wondering if I'm missing something.
-
- 2011-07-11
Se todos suaspostagenstiverem o
<!--more-->
tag,então vocêpode usar o seguinte com o seu código acima:$sjc_excerpt = explode( '<!--more-->', $post->post_content); echo wpautop( $sjc_excerpt[0] );
Claro que se vocêtiver algumapostagem quenãotem o
<!--more-->
tag,eles serãomostradosem suatotalidade.Trabalhanaminha situação,masnãoparatodos ...If ALL your posts have the
<!--more-->
tag, then you can use the following with your code above:$sjc_excerpt = explode( '<!--more-->', $post->post_content); echo wpautop( $sjc_excerpt[0] );
Of course if you have any posts that don't have the
<!--more-->
tag, they'll be shown in their entirety. Works in my situation, but not for all... -
- 2016-04-19
I Visualizar
get_the_excerpt ()
como umafunção com design legado.Como o uso do WordPress cresceu,hámuitos casos de usomais recentes ondenão seencaixa,mas onde asfunçõesmais recentespara obter dados diferentes são.Umexemplo é o usofreqüente de um$ args
matriz de opções defunção.Mas éfácil corrigirpara suasnecessidades.Aquiestá umafunção alternativa que vocêpode usar qual vocêpode colocarem qualquer lugarno arquivo
função robins_get_the_excerpt ($post_id) { postagemglobal; $ save_post=$post; $post=get_post ($post_id); $ Output=get_the_excerpt (); $post=$ save_post; Retornar $ Output; }
Apenaspara adicionar à resposta de Mikeschinkel,quepor algummotivonãofuncionariaparamim.Eutive que adicionar a linha SETUP_POSTDATAparafazerissofuncionar.
I view
get_the_excerpt()
as a function with legacy design. As WordPress usage has grown there are many newer use-cases where it doesn't fit but where the newer functions for getting different data do. One example is the now frequent use of an$args
array of function options.But it's easy to fix for your needs. Here's an alternative function you can use which you can put anywhere in your theme's
functions.php
file:function robins_get_the_excerpt($post_id) { global $post; $save_post = $post; $post = get_post($post_id); $output = get_the_excerpt(); $post = $save_post; return $output; }
Just to add to MikeSchinkel's answer, which for some reason wouldn't work for me. I had to add the setup_postdata line to make it work.
-
Issoprecisa `wp_reset_postdata ()`paratrabalhar dentro do loop?Does this need `wp_reset_post_data()` to work inside the loop?
- 0
- 2017-07-10
- Chris Pink
-
Aparentemente (depois deirem torno desta casaem particular) é agoraparte donúcleo.Apparently (after going around this particular house) it's now part of core.
- 0
- 2017-07-10
- Chris Pink
-
- 2016-06-08
Este é umpouco de dois lineri Usomuito utilizando wp_trim_words . Eu constantementeme encontroprecisando da abreviaçãoe lermaisfuncionalidadesfora do loop. Alguémmaispode acharisso útil. Então éisso queeu usopara:
- .
- Obter otrechopelo ID POST
- Obtenha o conteúdo dopost senenhumtrechoter sido definido,
- Defina apalavra comprimento dotrecho
- Escolha o conteúdopara a leituramais (link/text)
Eu colocoesteinline,diretamentenomodelopersonalizado queestoueditando.
//Get Post Object $ Dapost=get_post (post_id); //obter oexecorrpt $my_excerpt=wp_trim_words (apply_filters ("the_excerpt",get_the_excerpt ($ Dapost)?get_the_excerpt ($ DAPOST): $ Dapost- >post_content),"20","& lt; a href='$ Dapost- > ; ".__ ('Obtermais coisas','tradução')." "& Lt;/a >");
quebrar
1. O conteúdo dotrecho
Obtenha otrechopelo ID POST,mas obtenha o Publo Conteúdo senenhumtrechoter sido definido.
Euestou usando se/elsephptaquigre .
$ Dapost=get_post (post_id); aplicar_filters ("the_excerpt",get_the_excerpt ($ Dapost)?get_the_excerpt ($ Dapost): $ Dapost- & GT; Post_Content
2. Comprimento dapalavra
Defina a quantidade depalavrasnotrechopara 20
"20"
3. Escolha o conteúdo do Readmore (link/texto)
"& lt; A href='$ Dapost- > GUID' >" .__ ('Obtenhamais coisas','Tradução'). "& Lt;/a >"
Eu usei
$ Dapost- & GT; GUID
para obter o URL,porqueeunãoprecisava de URLs amigáveis e queriaevitar outra chamadapara o DB. Você semprepoderia usarget_the_permalink.ver wp_trim_words na documentação do WordPress.
This is a little two-liner I use a lot utilizing wp_trim_words. I constantly finding myself needing the abbreviation and read more functionalities outside of the loop. Some one else may find this useful. So this is what I use to:
- Get the Excerpt by POST ID
- Get Post Content If no Excerpt has been set,
- Set the Word length of the Excerpt
- Choose the Content for the Read More(Link/Text)
I put this inline, directly in the custom template I am editing.
//Get Post Object $dapost = get_post(POST_ID); //Get the Execerpt $my_excerpt = wp_trim_words( apply_filters( "the_excerpt", get_the_excerpt($dapost) ? get_the_excerpt($dapost) : $dapost->post_content ), "20", "<a href='$dapost->guid'> ".__('Get More Stuff', 'translation')."</a>" );
Break Down
1.The excerpt content
Get the Excerpt by Post ID but, get Post Content If no Excerpt has been set.
I am using If/Else PHP shorthand.
$dapost = get_post(POST_ID); apply_filters( "the_excerpt", get_the_excerpt($dapost) ? get_the_excerpt($dapost) : $dapost->post_content
2. Word length
Set the amount of words in the Excerpt to 20
"20"
3. Choose ReadMore Content(Link/Text)
"<a href='$dapost->guid'> ".__('Get More Stuff', 'translation')."</a>"
I used
$dapost->guid
to get the URL, because I did not need friendly URLs, and wanted to avoid another call to the DB. You could always use get_the_permalink.See wp_trim_words in the Wordpress Documentation.
-
-
- 2018-09-07
do WP 4.5.0 épossível usar o POST ID comoparâmetro
get_the_excerpt( $post->ID )
Fonte: https://developer.wordpress.org/reference/functions/get_the_excerpt/
From WP 4.5.0 is possible use the post ID as parameter
get_the_excerpt( $post->ID )
Source:https://developer.wordpress.org/reference/functions/get_the_excerpt/
Por que é quenão sepode obter otrechoporid como com otítuloe amaioria dos outroselementos.
porexemplo.get_the_excerpt (ID). Eu sei como usá-lo com afunção $post->post_excerpt,mas quenão retornaparte do conteúdo senenhumtrechofoiinserido,ele simples retornanada.
Então,o queeuestoutentandofazer é obter otrechoporid se houver umtrecho,e senão houver umtrecho comesse ID,mas há algum conteúdo,para obter algum conteúdo.
Como alguémfariaisso.
Algumaidéia,
maravilhoso ...
editar -
Código-fonte de loop conforme solicitado.