OTTIENI l'estratto da ID
-
-
che cos'èesattamente "parte" del contenuto?what exactly is "some" of the content?
- 0
- 2011-03-19
- kaiser
-
Lafunzioneexcerptin wordpress restituisce l'estratto di unpost.Seilpostnon ha unestratto restituisce un certonumero di caratteri del contenuto seguito da "..." o "leggi dipiù" o qualsiasi altra cosafornita dalmodelloThe 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
-
Nonperessere un PITA,ma le regole della comunità vietanofirmee chiusure standard.Per rispettare le regoleedevitare che [Jeff Atwood] (http://stackexchange.com/about/management)ti invii unmessaggio severo dopo avermodificatotutte letue domande,smetti di usare * "Marvelous" * come chiusura.* (Eperfavorenon sparare almessaggero) *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 risposta
- voti
-
- 2011-03-19
Ciao @Robin I. Knight:
Considero
get_the_excerpt()
come unafunzione con un design legacy.Poiché l'utilizzo di WordPress è cresciuto,ci sonomolti casi d'usopiù recentiin cuinon si adattamain cui lofanno lenuovefunzioniper ottenere dati diversi.Unesempio è l'uso ormaifrequente di un array$args
di opzioni difunzione.Ma èfacile da risolvereper letueesigenze.Ecco unafunzione alternativa chepuoi utilizzaree chepuoiinserire ovunquenelfile
functions.php
deltuotema: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; }
Non l'hotestatoma sono abbastanza sicuro di aver capitobene.Se questonon soddisfa letueesigenze,approfondiscie forseposso darti altri suggerimenti.
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.
-
Funziona.Una specie di.Risultatimolto strani.Sicuramente sta svolgendo la suafunzionemai risultati sono strani.Lo sto usandoinsieme a GET_Postse per qualchemotivoi primi 2post ricevuti sono sempregli stessi.Ecco un collegamentoe vedrai cosaintendo.Guardai 4pali sul lato destro.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
-
@Robin I Knight: Perfavorepubblicail codice sorgente del loop come aggiornamento allatua domanda;èmolto difficileeseguireil debug del codice senza vederlo.Probabilmente è anche unplugin che sta causandoilproblema;prova a disabilitarli uno alla volta.@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
-
Ripetiil codice sorgentein questione sopra ^^Loop source code in question above ^^
- 0
- 2011-03-19
- Robin I Knight
-
BTW ho cambiatoilnome dellafunzionein get_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
-
@Robin I Knight - Non vedonullaneltuo loop,mapotrestiprovare a chiamare `setup_postdata ($post)` all'inizio deltuo loop,come suggerisce @Rarst.Senonfunziona,potrebbeessere unplugin che devi disabilitare;l'haiprovato?Eprobabilmentenon vuoi chiamarlo `get_the_excerpt_id ()`perché WordPresspotrebbe aggiungere quellafunzionein futuroe danneggiareiltuo sito.Eprobabilmentepotrestifare ameno dellafunzioneneltuo ciclo usando `foreach ($ stories as $ story):global $post;$post=$ story; `invece.@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
Imeccanismi dell'estratto sonoestremamente confusi.Non è una rispostaprecisa allatua domandamain generale se haibisogno difarein modo chei tagtemplate,specificiper Loop,funzionino con l'array restituito da
get_posts()
puoiemulare Loopin questomodo:$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();
-
che dire di wp_reset_query ();?what about wp_reset_query(); ?
- 0
- 2012-01-27
- cwd
-
@cwd se solo l'uso della queryglobale `setup_postdata ()`non èinteressatoe soloi dati delpost devonoessere ripristinati.@cwd if only using `setup_postdata()` global query is not affected and only post data needs to be reset.
- 1
- 2012-01-27
- Rarst
-
Questa soluzione èpiùpulita rispetto allamemorizzazione delpostin un'altra vare richiede un altropost soloper renderloglobale.+1This 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
-
Grazie @Rarst chemi ha aiutato.Aggiunta di setup_postdata ($post);risoltoi mieiproblemiThanks @Rarst that helped me out. Adding setup_postdata($post); resolved my issues
- 0
- 2014-11-14
- Simon
-
- 2012-01-14
È disponibile unanuovafunzione dalla 3.3.0: wp_trim_words
Lo sto usandofuori dal ciclo come segue:
<?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 } } ?>
Questonon deveessere confuso con wp_trim_excerpt che apparentementefunziona solo all'interno del ciclo,poiché chiamainternamentethe_content ().
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
Soloper aggiungere alla risposta di MikeSchinkel,cheper qualchemotivononfunzionerebbeperme.Ho dovuto aggiungere la riga setup_postdataperfarlofunzionare.
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;
}
Presumo che se lo stai usando al difuori del ciclo,non dovrebbeinterferire con altri setup_postdatain corso.
Saluti
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
-
Hoprovato la risposta di MikeSchinkele non hafunzionatoperme.L'impostazione dei dati deipost hafunzionato.Nelmio caso senza 'setup_postdata' lafunzione ha restituitoiltitolo + l'estratto delpostprincipale.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
Basandosi sulla risposta di @ Maxime,funzionerebbe?
$post = get_post( $id ); $excerpt = ( $post->post_excerpt ) ? $post->post_excerpt : $post->post_content;
Mi sembra abbastanza semplice,mami chiedo semi manca qualcosa.
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 TUTTI i tuoipost hannoiltag
<!--more-->
,puoi utilizzare quanto segue coniltuo codice sopra:$sjc_excerpt = explode( '<!--more-->', $post->post_content); echo wpautop( $sjc_excerpt[0] );
Ovviamente se haipost chenon hannoiltag
<!--more-->
,verrannomostratinella lorointerezza.Funzionanellamia situazione,manonpertutti ...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
Considero
get_the_excerpt()
come unafunzione con un design legacy.Poiché l'utilizzo di WordPress è cresciuto,ci sonomolti casi d'usopiù recentiin cuinon si adattamain cui lofanno lenuovefunzioniper ottenere dati diversi.Unesempio è l'uso ormaifrequente di un array$args
di opzioni difunzione.Ma èfacile da risolvereper letueesigenze.Ecco unafunzione alternativa chepuoi utilizzaree chepuoiinserire ovunquenelfile
functions.php
deltuotema: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; }
Soloper aggiungere alla risposta di MikeSchinkel,cheper qualchemotivononfunzionerebbeperme.Ho dovuto aggiungere la riga setup_postdataperfarlofunzionare.
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.
-
Questo habisogno di `wp_reset_postdata ()`perfunzionare all'interno del ciclo?Does this need `wp_reset_post_data()` to work inside the loop?
- 0
- 2017-07-10
- Chris Pink
-
Apparentemente (dopo avergirato questa casain particolare) orafaparte delnucleo.Apparently (after going around this particular house) it's now part of core.
- 0
- 2017-07-10
- Chris Pink
-
- 2016-06-08
Questo è unpo 'di due righe che usomolto utilizzando wp_trim_words . Mitrovo costantemente ad averbisogno dell'abbreviazionee di leggerepiùfunzionalità al difuori del ciclo. Qualcun altropotrebbetrovarlo utile. Quindi questo è ciò che usoper:
- Ottieni l'estrattoper ID POST
- Ottieni contenuto delpost senon è statoimpostato alcunestratto,
- Imposta la lunghezzain parole dell'estratto
- Scegliil contenutoper ulterioriinformazioni (collegamento/testo)
Lomettoin linea,direttamentenelmodellopersonalizzato che stomodificando.
//Ottieni oggettopost $ dapost=get_post (POST_ID); //Ottieni l'Execerpt $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- >guid' > ; ".__ ('Get More Stuff','translation')." & Lt;/a > ");
Ripartizione
1.Il contenuto dell'estratto
Ottieni l'estrattoin base all'ID delpostma ottieniil contenuto delpost senon è statoimpostato alcunestratto.
Sto usando l'abbreviazione If/Else PHP .
$ dapost=get_post (POST_ID); apply_filters ("the_excerpt",get_the_excerpt ($ dapost)?get_the_excerpt ($ dapost): $ dapost- >post_content
2. Lunghezzaparola
Imposta la quantità diparolenell'estratto su 20"
"20" 3. Scegli ReadMore Content (Link/Text)
"& lt; a href='$ dapost- >guid' >" .__ ('Get More Stuff','translation'). "& lt;/a >"
Ho usato
$ dapost- >guid
per ottenere l'URL,perchénon avevobisogno di URL amichevolie volevoevitare un'altra chiamata al DB. Puoi sempre utilizzareget_the_permalink.Vedi wp_trim_words nella documentazione di 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
Da WP 4.5.0 èpossibile utilizzare l'ID delpost comeparametro
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/
Perchénon èpossibile ottenere l'estratto dall'ID come coniltitoloe lamaggiorparte degli altrielementi.
ades.get_the_excerpt (ID). So come usarlo con lafunzione $post->post_excerptma ciònon restituisceparte del contenuto senon è statoinserito alcunestratto,semplicementenon restituiscenulla.
Quindi quello che sto cercando difare è ottenere l'estrattoper ID se c'è unestrattoe senon c'è unestratto con quell'IDma c'è del contenuto,per ottenereinveceparte del contenuto.
Come sifa?
Qualsiasiidea,
Meraviglioso ...
MODIFICA -
Ripetiil codice sorgente come richiesto.