Come posso limitare la lunghezza dei caratteri in un estratto?
2 risposta
- voti
-
- 2012-10-30
aggiungi queste righenelfilefunction.php
function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
add these lines in function.php file
function custom_excerpt_length( $length ) { return 20; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
-
Questo limitailnumero diparole a 20,noni caratteri.This limits the number of words to 20, not the characters.
- 9
- 2016-12-07
- Ionut
-
Perché abbiamo aggiuntoilnumero 999 qui?Why we have added number 999 here?
- 0
- 2018-04-11
- Navnish Bhardwaj
-
@NavnishBhardwaj 999 è laprioritàperil caricamento delfiltro.fare riferimento quipermaggiori dettagli. https://developer.wordpress.org/reference/functions/add_filter/@NavnishBhardwaj 999 is the priority for the filter to be loaded. refer here for more details. https://developer.wordpress.org/reference/functions/add_filter/
- 1
- 2018-04-18
- Annapurna
-
- 2012-10-30
Oltre alfiltro hook soprafornito dalla risposta di Deepa,ecco unafunzione aggiuntiva chepuò aiutarti aestendere l'uso di
the_excerpt
in duemodi,Tipermette di ...
Limita l'estrattoin base alnumero di caratterima NONtroncare l'ultimaparola. Ciòti consentirà di restituire unnumeromassimo di caratterima dipreservare leparoleintere,in modo che vengano restituite solo leparole chepossono rientrarenel limite dinumero specificatoe ti consentirà di specificare lafonte da cuiproviene l'estratto.
function get_excerpt($limit, $source = null){ $excerpt = $source == "content" ? get_the_content() : get_the_excerpt(); $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">more</a>'; return $excerpt; } /* Sample... Lorem ipsum habitant morbi (26 characters total) Returns first three words which is exactly 21 characters including spaces Example.. echo get_excerpt(21); Result... Lorem ipsum habitant Returns same as above, not enough characters in limit to return last word Example.. echo get_excerpt(24); Result... Lorem ipsum habitant Returns all 26 chars of our content, 30 char limit given, only 26 characters needed. Example.. echo get_excerpt(30); Result... Lorem ipsum habitant morbi */
Questafunzionepuòessere utilizzatapiù volte attraversoi file deitemi,ciascuno con limiti di caratteri diversi specificati.
Questafunzione ha la capacità di recuperare unestratto da uno dei due,
the_content
the_excerpt
Adesempio,se haipost che contengonotestonella casella_excerptnella schermata dell'editor deipost,ma desideriestrarre unestratto dal corpo_contentinveceper un caso d'uso speciale,lofarestiinvece;
get_excerpt(140, 'the_content'); //excerpt is grabbed from get_the_content
Questo dice allafunzione che vuoii primi 140 caratteri da
the_content
,indipendentemente dalfatto che unestratto siaimpostatonella casellathe_excerpt
.get_excerpt(140); //excerpt is grabbed from get_the_excerpt
Questo dice allafunzione che vuoiprimai primi 140 caratteri da
the_excerpt
e senonesiste alcunestratto,the_content
verrà utilizzato come riserva.Lafunzionepuòesseremigliorataperessere resapiùefficientee/oincorporata con l'uso difiltri di WordPress siaper
the_content
othe_excerpt
o semplicemente usata così com'èin situazioniin cui ci non è un'alternativa adatta all'API di WordPressintegrata .In addition to the above filter hook supplied by Deepa's answer here is one additional function that can help you extend the use of
the_excerpt
in two ways,Allows you to...
Limit the excerpt by number of characters but do NOT truncate the last word. This will allow you to return a maximum number of characters but preserve full words, so only the words that can fit within the specified number limit are returned and allow you to specify the source of where the excerpt will come from.
function get_excerpt($limit, $source = null){ $excerpt = $source == "content" ? get_the_content() : get_the_excerpt(); $excerpt = preg_replace(" (\[.*?\])",'',$excerpt); $excerpt = strip_shortcodes($excerpt); $excerpt = strip_tags($excerpt); $excerpt = substr($excerpt, 0, $limit); $excerpt = substr($excerpt, 0, strripos($excerpt, " ")); $excerpt = trim(preg_replace( '/\s+/', ' ', $excerpt)); $excerpt = $excerpt.'... <a href="'.get_permalink($post->ID).'">more</a>'; return $excerpt; } /* Sample... Lorem ipsum habitant morbi (26 characters total) Returns first three words which is exactly 21 characters including spaces Example.. echo get_excerpt(21); Result... Lorem ipsum habitant Returns same as above, not enough characters in limit to return last word Example.. echo get_excerpt(24); Result... Lorem ipsum habitant Returns all 26 chars of our content, 30 char limit given, only 26 characters needed. Example.. echo get_excerpt(30); Result... Lorem ipsum habitant morbi */
This function can be used multiple times through out theme files, each with different character limits specified.
This function has the ability to retrieve an excerpt from either,
the_content
the_excerpt
For example, if you have posts that contain text in the_excerpt box on the post editor screen, but want to pull an excerpt from the_content body instead for a special use case you would instead do;
get_excerpt(140, 'the_content'); //excerpt is grabbed from get_the_content
This tells the function that you want the first 140 characters from
the_content
, regardless of whether an excerpt is set inthe_excerpt
box.get_excerpt(140); //excerpt is grabbed from get_the_excerpt
This tells the function that you want the first 140 characters from
the_excerpt
first and if no excerpt exists,the_content
will be used as a fallback.The function can be improved to be made more efficient and or incorporated with the use of WordPress filters for both
the_content
orthe_excerpt
or simply used as is in situations where there is no suitable, in-built WordPress API alternative.-
Ciao!Grazie atuttiper la rispostafornita!Vorrei chiedere,comefarlofunzionare con ...invece che [...] allafine dell'estratto?Hi! Thanks for all for the answer provided! I would like to ask, how to make it work with ... instead of [...] at the end of excerpt?
- 0
- 2012-11-02
- Jornes
-
L'ultima riga,`$excerpt=$excerpt .'... More '; `è ciò chepuoi usareper definireiltuolink "leggi dipiù"per così dire.Puoi vedere che aggiunge un'ellissimapuoi aggiungere quello che vuoi.The last line, `$excerpt = $excerpt.'... more';` is what you can use to define your "read more" link so to speak. You can see there it adds an ellipsis but you can add whatever you like.
- 0
- 2012-11-02
- Adam
-
@Jornesforse èin ritardo di 6 anni,maeccoil codice HTMLperi puntini di sospensione "& hellip;"@Jornes it maybe 6 years late, but here is the HTML code for the ellipsis `…`
- 1
- 2018-07-20
- AlbertSamuel
-
@AlbertSamuel Grazieper la risposta.:)@AlbertSamuel Thank you for the answer. :)
- 1
- 2019-05-10
- Jornes
Ho una domanda dopo aver letto questopost ( Comeevidenziare la ricercatermini senzaplug-in ).Mipiacemolto questafunzione (termine di ricerca senzaplug-in)ma la lunghezza dei caratteri ètroppo lunga.Quale codicephp devo aggiungereper abbreviare l'estratto?Apprezzerei se qualcunopotesse suggerirlo.Grazie!