Page 1 sur 1

demande d'aide sur une fonction

Posté : 12 mai 2012, 12:12
par kairi084
Bonjour,

je vous écris car j'ai un probleme pour modifier une fonction.
Aussi, merci d'avance à toutes les personnes qui voudront bien m'aider =(

Ma fonction de base à pour objectif d'afficher un extrait de texte sur mon blog wordpress :

Code : Tout sélectionner

<?php function improved_trim_excerpt($text) { global $post; if ( '' == $text ) { $text = get_the_content(''); $text = apply_filters('the_content', $text); $text = str_replace(']]>', ']]>', $text); $text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text); $text = strip_tags($text, '<p><a><strong><br /><font><h2><h3><span>'); $excerpt_length = 50; $words = explode(' ', $text, $excerpt_length + 1); if (count($words)> $excerpt_length) { array_pop($words); array_push($words, '[...]'); $text = implode(' ', $words); } } return $text; } ?>

Cette fonction marche parfaitement ! le seul problème c'est qu'avant chaque contenu symbolisé par la balise "<p class="aeretexte">" j'ai une div : "<div class="resume">" qui contient un tableau que je ne souhaite pas afficher dans l'extrait.

Ma question est la suivante : comment modifier la fonction pour n'afficher le texte qu'a partir de la balise "<p class="aeretexte">" et de supprimer tout ce qui est avant ??

merci beaucoup d'avance car j'ai un petit niveau en php et là je suppose qu'il faut utiliser une regex =(


merciiiii

Re: demande d'aide sur une fonction

Posté : 12 mai 2012, 13:20
par sirakawa
Le problème vient d'ailleurs que dans la fonction;
<?php

function improved_trim_excerpt($text) {
global $post;
if ( '' == $text ) {
$text = get_the_content('');
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
$text = strip_tags($text, '<p><a><strong>
<font><h2><h3><span>');
$excerpt_length = 50;
$words = explode(' ', $text, $excerpt_length + 1); // $words est un tableau
if (count($words)> $excerpt_length) {
array_pop($words);
array_push($words, '[...]');
$text = implode(' ', $words); // ce n'est pas un tableau à ce niveau, mais une chaîne de caractères
}
}
}
// tu peux mettre pour te convaincre:
print "<br>texte dans la fonction $texte<==="; die();
return $text;

?>

Re: demande d'aide sur une fonction

Posté : 12 mai 2012, 14:04
par kairi084
Bonjour,

merci beaucoup pour ta reponse, par contre je ne vois pas quoi changer =( désolé j'ai du mal =(

Re: demande d'aide sur une fonction

Posté : 12 mai 2012, 19:09
par sirakawa
Il faudrait chercher où cette fonction est appelée et essayer de comprendre le code qui est autour:
Il doit y avoir un truc dans le genre de:
$text = improved_trim_excerpt($text);
et c'est après ça qu'il se passe ce que tu ne voudrais pas.