Création d’extraits en PHP ou WordPress : techniques de comptage de mots, de phrases et de paragraphes

Création d’extraits dans PHP est une tâche courante dans la gestion de contenu et le développement de sites Web. Un extrait est une version abrégée d’un contenu plus long, souvent utilisé pour fournir un aperçu ou un résumé. Les développeurs PHP devront peut-être créer des extraits basés sur le nombre de mots, de phrases ou de paragraphes. Cet article explore les méthodes pour y parvenir, ainsi que les meilleures pratiques et la gestion des cas où le nombre dépasse la longueur du contenu.
Extrait par nombre de mots
Créer un extrait par nombre de mots consiste à tronquer le contenu après un certain nombre de mots.
function excerptByWordCount($content, $wordCount) {
$words = explode(' ', $content);
if (count($words) > $wordCount) {
$words = array_slice($words, 0, $wordCount);
$content = implode(' ', $words);
}
return $content;
}
Usage:
// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50);
Meilleures pratiques et gestion des excédents :
- Vérifiez le nombre de mots : Avant de tronquer, vérifiez si le nombre de mots du contenu original dépasse la longueur d’extrait souhaitée. Sinon, renvoyez le contenu original.
- Évitez de casser des mots : Assurez-vous que le dernier mot de l’extrait est complet pour maintenir la lisibilité.
- Ajoutez des points de suspension : Eventuellement, ajoutez des points de suspension (
...
) à la fin si le contenu est tronqué.
Extrait par nombre de phrases
Créer des extraits par nombre de phrases implique de conserver un certain nombre de phrases du contenu.
function excerptBySentenceCount($content, $sentenceCount) {
$sentences = explode('.', $content);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode('. ', $sentences) . '.';
}
return $content;
}
Usage
// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3);
Pour mettre à jour le excerptBySentenceCount
pour inclure des phrases avec n’importe quelle ponctuation à la fin (pas seulement des points), vous pouvez modifier la fonction pour diviser le contenu par une expression régulière qui correspond à n’importe quelle ponctuation de fin de phrase typique, comme un point, un point d’exclamation ou un point d’interrogation. Voici comment procéder en PHP :
function excerptBySentenceCount($content, $sentenceCount) {
// Use a regular expression to split the content by sentence-ending punctuation
$sentences = preg_split('/(?<=[.!?])\s+/', $content, -1, PREG_SPLIT_NO_EMPTY);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode(' ', $sentences);
// Check the last character to ensure it ends with punctuation
if (!preg_match('/[.!?]$/', $content)) {
$content .= '.';
}
}
return $content;
}
Cette fonction utilise preg_split
avec une expression régulière (expression régulière) /(?<=[.!?])\s+/
qui divise le texte en espaces (\s+
) qui suivent un point, un point d’exclamation ou un point d’interrogation ([.!?]
). Le (?<=...)
est une assertion positive qui vérifie la présence d’une ponctuation de fin de phrase sans l’inclure dans la division. Le PREG_SPLIT_NO_EMPTY
flag garantit que seules les pièces non vides sont renvoyées.
Enfin, la fonction vérifie si le dernier caractère du contenu résultant est un signe de ponctuation de fin de phrase. Dans le cas contraire, il ajoute un point pour maintenir une ponctuation appropriée à la fin de l’extrait.
Meilleures pratiques et gestion des excédents :
- Détection correcte des phrases : Utilisez un point suivi d’un espace pour diviser les phrases. Cela évite le fractionnement en points utilisés dans les abréviations.
- Vérifiez le nombre de phrases : Semblable au nombre de mots, vérifiez si le nombre de phrases du contenu original est suffisant.
- Maintenir la ponctuation : Assurez-vous que l’extrait se termine par une ponctuation appropriée, généralement un point.
Extrait par nombre de paragraphes
Créer des extraits par nombre de paragraphes implique de tronquer le contenu après un certain nombre de paragraphes.
function excerptByParagraphCount($content, $paragraphCount) {
$paragraphs = explode("\n", $content);
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode("\n", $paragraphs);
}
return $content;
}
Usage:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2);
Meilleures pratiques et gestion des excédents :
- Utiliser de nouvelles lignes pour les paragraphes : Les paragraphes sont généralement séparés par de nouvelles lignes (
\n
). Assurez-vous que votre contenu suit ce format. - Vérifiez le nombre de paragraphes : Validez si le nombre de paragraphes du contenu est adéquat pour l’extrait.
- Respecter la structure du contenu : Conservez la structure des paragraphes de l’extrait pour préserver l’intégrité du contenu.
Extrait par nombre de paragraphes HTML
Lorsque vous traitez du contenu HTML, vous souhaiterez en extraire des extraits en fonction du <p>
balises pour conserver la structure et le formatage du contenu original.
function excerptByHtmlParagraphCount($content, $paragraphCount) {
preg_match_all('/<p[^>]*>.*?<\/p>/', $content, $paragraphs);
$paragraphs = $paragraphs[0];
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode(' ', $paragraphs);
}
return $content;
}
Usage:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2);
Meilleures pratiques et gestion des excédents :
- Expressions régulières pour la correspondance de balises : Utiliser
preg_match_all
avec une expression régulière pour correspondre<p>
Mots clés. Cette approche garantit que la structure et les attributs des balises de paragraphe sont préservés. - Respectez la structure HTML : Assurez-vous que l’extrait conserve la structure HTML. Évitez de casser les balises, ce qui peut entraîner des problèmes de rendu.
- Vérifiez le nombre de paragraphes : Comme pour le texte brut, vérifiez si le nombre de paragraphes du contenu original est suffisant pour l’extrait.
- Gérer les balises imbriquées : N’oubliez pas que les paragraphes peuvent contenir d’autres éléments HTML tels que des liens ou des étendues. Assurez-vous que vos expressions régulières tiennent compte des balises imbriquées dans les paragraphes.
La création d’extraits basés sur le nombre de paragraphes HTML en PHP est une tâche plus avancée que la gestion du texte brut. Il est essentiel d’utiliser les expressions régulières avec précaution pour maintenir l’intégrité de la structure HTML. Cette méthode est particulièrement pertinente pour les applications Web où le contenu doit être affiché avec sa mise en forme d’origine. Comme toujours, validez la longueur du contenu original et tenez compte de l’expérience utilisateur lors de la présentation d’extraits.
Oui, WordPress possède son propre ensemble de fonctions et de fonctionnalités qui facilitent la création d’extraits, ce qui peut grandement simplifier le processus par rapport à la gestion manuelle des extraits en PHP. Voici un aperçu des principales fonctions WordPress liées aux extraits :
La fonction d’extrait dans WordPress
Le WordPress API offre un système robuste pour gérer les extraits, rendant inutile l’implémentation manuelle des fonctions PHP pour la plupart des cas d’utilisation typiques. WordPress offre un moyen convivial de gérer les résumés de publication, qu’il s’agisse de personnaliser la longueur, de modifier la En savoir plus texte, ou en utilisant des balises de modèle pour afficher des extraits.
the_excerpt()
Cette balise de modèle WordPress imprime automatiquement un extrait d’une publication. Il est couramment utilisé dans les thèmes pour afficher un résumé de publication sur les pages d’archives.
- Usage: Lieu
the_excerpt()
dans The Loop dans vos fichiers de thème là où vous souhaitez que l’extrait apparaisse. - Comportement: Par défaut, il affiche les 55 premiers mots du message. S’il existe un extrait défini manuellement dans l’éditeur de publication, il l’affichera à la place.
get_the_excerpt()
Cette fonction récupère l’extrait sans l’afficher, vous donnant plus de contrôle sur comment et où l’utiliser.
- Usage:
get_the_excerpt($post)
peut être utilisé pour récupérer l’extrait d’un message spécifique. - Personnalisation : Vous pouvez manipuler la chaîne renvoyée selon vos besoins avant de l’afficher.
Personnalisation de la longueur de l’extrait
WordPress vous permet de modifier la longueur par défaut de l’extrait via le excerpt_length
filtre.
function custom_excerpt_length($length) {
return 20; // Return 20 words as the new excerpt length
}
add_filter('excerpt_length', 'custom_excerpt_length');
Gérer plus de balises et extraire plus de texte
the_content('Read more')
Cette fonction affiche le contenu jusqu’à ce qu’il rencontre une balise « plus ». C’est utile pour afficher un extrait de longueur personnalisée directement dans l’éditeur de contenu.
Personnalisation de l’extrait plus de texte
Vous pouvez personnaliser le texte qui apparaît à la fin d’un extrait (comme […]
) en utilisant le excerpt_more
filtre.
function custom_excerpt_more($more) {
return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');
Gestion du HTML dans les extraits
Les extraits WordPress sont en texte brut par défaut. Si vous devez conserver les balises HTML dans les extraits, vous devez créer une fonction personnalisée ou utiliser un plugin conçu à cet effet.
Cependant, un codage personnalisé ou des plugins peuvent être nécessaires pour des exigences avancées telles que la préservation des balises HTML dans des extraits ou la création d’extraits basés sur des éléments spécifiques tels que des phrases ou des paragraphes.
Source link