web-dev-qa-db-fra.com

Comment puis-je limiter la longueur des caractères dans l'extrait?

Duplicate possible:
extrait en caractères

J'ai une question après avoir lu ce post ( Comment mettre en évidence les termes de recherche sans plugin ). J'aime beaucoup cette fonction (terme de recherche sans plugin), mais la longueur des caractères est trop longue. Quel code php devrais-je ajouter pour rendre l'extrait plus court? J'apprécierais si quelqu'un peut le suggérer. Je vous remercie!

7
Jornes

ajoute ces lignes dans le fichier function.php

function custom_excerpt_length( $length ) {
        return 20;
    }
    add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
14
dipali

En plus du crochet de filtrage fourni par Deepa, voici une fonction supplémentaire qui peut vous aider à étendre l'utilisation de the_excerpt de deux manières:

Vous permet de...

Limitez l'extrait par le nombre de caractères mais ne tronque PAS le dernier mot. Cela vous permettra de renvoyer un nombre maximal de caractères tout en conservant les mots entiers. Ainsi, seuls les mots pouvant correspondre à la limite de nombre spécifiée sont renvoyés et vous permet de spécifier la source d'où proviendra l'extrait.

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
*/

Cette fonction peut être utilisée plusieurs fois dans des fichiers de thème, chacun avec différentes limites de caractères spécifiées.

Cette fonction a la capacité de récupérer un extrait de l'un ou l'autre,

  • the_content
  • the_excerpt

Par exemple, si vous avez des publications qui contiennent du texte dans la zone _excerpt de l'écran d'édition de publication, mais souhaitez extraire un extrait du corps_content à la place pour un cas d'utilisation particulier, vous feriez plutôt;

get_excerpt(140, 'content'); //excerpt is grabbed from get_the_content

Cela indique à la fonction que vous voulez les 140 premiers caractères de the_content, qu'un extrait soit défini ou non dans la zone the_excerpt.

get_excerpt(140); //excerpt is grabbed from get_the_excerpt

Cela indique à la fonction que vous voulez les 140 premiers caractères de the_excerpt en premier, là où aucun extrait n'existe, the_content sera utilisé comme solution de secours.

La fonction peut être améliorée pour être plus efficace et/ou incorporée avec l’utilisation de filtres WordPress pour the_content ou the_excerpt ou simplement utilisée telle quelle dans les situations où il n’existe aucune option appropriée , alternative à l’API WordPress intégrée.

19
userabuser