Wordpress : afficher le début d'un article mais n'utiliser en aucun cas l'extrait associé

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 836 fois - Téléchargée 14 fois

Contenu du snippet

Ce code permet d'afficher le début d'un article sous Wordpress sans que l'extrait ne puisse le remplacer.

Créé afin d'éviter le duplicate content sur les pages d'articles, de mots clés ou sur la page d'accueil et optimiser le référencement d'un site.

Le code source doit être ajouté au fichier function.php du thème et être appelé sur les pages concerné.

Vous pouvez par exemple utiliser ce code sur toutes les pages du site (accueil, mots-clefs, etc..) sauf pour les pages d'articles en ajoutant :
if ( is_category() ) the_exerpt(); else without_excerpt() et ainsi n'afficher les extraits que sur les pages de catégories.

Source / Exemple :


/*
  Fonction permettant d'afficher uniquement le début de l'article 
  En auncuns cas l'extrait ne sera affiché

  • /
function without_excerpt() { echo get_content_without_excerpt(); } function get_content_without_excerpt( $deprecated = '' ) { $post = get_post(); $post = $post->post_content; $post = strip_tags($post, '<a>'); // Ajouter des balises à accepter dans l'extrait ex: <h1>,<span>,<font>,<p>,<br/>,etc... $excerpt_length = arras_get_option('excerpt_limit'); // Modifier le nombre de mots autorisés (int) ou comme ici aller chercher la valeur dans les options du thème $words = explode(' ', $post, $excerpt_length + 1); if (count($words)> $excerpt_length) { array_pop($words); array_push($words, '[...]'); // Caractères à afficher à la fin de la chaîne en fonction du thème un petit <br/> peut être nécessaire à la suite. $post = implode(' ', $words); } return apply_filters( 'wp_trim_excerpt', $post ); }

A voir également

Ajouter un commentaire

Commentaires

Bonjour, tes remarques sont effectivement très juste, les extraits affichés sont coupés après un certain nombre de mots... Petite erreur de ma part en commentant le code.

Pour ce qui est des balises elles peuvent effectivement posés un problème si elles sont coupées. Personnellement pour l'utilisation que je fais de ce bout de code cela ne me pose pas de soucis de ce genre, je verrais si je peux venir régler ce problème à l'occasion sinon j'invite tout le monde à venir compléter ce code via les coms pour remédier au soucis des balises. :)

Merci à toi emilia123
cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009
-
Bonjour,

Je n'ai pas testé le code, mais à la simple lecture je me pose deux questions :

1) "excerpt_limit" semble indiquer une limite en nombre de caractères, mais le explode basé sur le caractère " " (espace) découpe sur la base de mots entiers et non chaque caractères... cela serait donc plutôt une limite en nombre de mots non?

2) il me semble qu'il y ait un risque de bug lorsqu'une balise HTML autorisée (en ligne 12) est ouverte mais que la fermeture de cette balise soit hors limite (texte coupé avant la fermeture de la balise HTML).
texte : ["..."> bla bla texte long, voir très long... blabla >>coupure ici<<< blabla bla bla]
La balise A ne serait pas fermée si la coupure du texte intervient à l'emplacement >>>coupure ici<<<.
On peut trouver des exemples de fonction sur internet qui permettent de couper du code HTML sans risque de casser les balises qui sont incluses.

Bonne continuation.

EM.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.