J'ai eu à régler un problème gênant sur un blog WordPress: les utilisateurs laissé des commentaires avec des phrases longues. Ce produit de la publication du texte, à la fois dans le backend, pire encore, dans le frontend. L'effet était vraiment horrible et pour éviter au corps-à modérée chaque commentaire, la seule solution était de filtrer - en quelque sorte - la sortie des commentaires.
Heureusement (et est l'une des raisons pour lesquelles j'aime toutes les choses WP) Wordpress vous permet d'ajouter un filtre à la sortie des commentaires. Dans mon cas, il suffisait d'ajouter dans le fichier functions.php les lignes de code suivante:
1 2 3 4 5 6 7 8 9 10 11 12 | $content ) { Fonction filter_comment ($ contenu) { explode ( " " , $content ) ; $ A = exploser ("", $ contenu); "" ; $ Contenu = ""; $a as $word ) { foreach ($ un mot comme $) { strlen ( $word ) > 20 ) $word = substr ( $word , 0 , 20 ) . "[t...]" ; if ( strlen ($ mot)> 20) $ mot = substr ($ texte, 0, 20) ». [t. ..]"; ( $content == "" ) ? $word : ( " " . $word ) ; »Parole $? $ Content .= ($ contenu =="): ("" $ Word.); } ; return $ contenu; } , 'filter_comment' ) ; add_filter ('comment_text', 'filter_comment'); , 'filter_comment' ) ; add_filter ('get_comment_text', 'filter_comment'); |
Les mots sont trop longs (plus de 20) sont coupées et, à la fin, ajoutez [t...] - pour indiquer qu'un mot est coupé.










Excusez que la différence entre
et
et pourquoi utiliser les deux?
e
comment_text_rss. @ Vik: la version actuelle de WordPress, vous pouvez appliquer le filtre aux deux fonctions, en vérité, il ya aussiget_comment_excerpt(), lecomment_excerpt()etcomment_text_rss.(come in molte altre funzioni scritte con questa nomenclatura) sta nel tipo di output: la prima,
comment_text(), emette l'output a video (cioè esegue unaechointerna) mentre la seconda,get_comment_text(), lo restituisce in una variabile, tipo: Cependant, la différence entrecomment_text()etget_comment_text()(comme dans beaucoup d'autres fonctions écrites dans cette nomenclature) est le type de sortie: le premier,comment_text(), émet la sortie écran (c'est à dire l'exécution d'unechoà l'intérieur) tandis la seconde,get_comment_text(), retourne dans une variable, tapez:nel frontend o nei vari temi. Dans l'exemple, quand j'ai posté la fois dans
get_comment_text()est largement utilisé dans le backend alors que lecomment_text()dans le frontend ou dans les différents thèmes.. Cependant, en effectuant une ingénierie inverse du code, il est clair que la fonction
get_comment_text()est en entrocontennutacomment_text(). . Il s'ensuit que ce serait suffisant pour appliquer la fonction de filtre neget_comment_text()pour agir - indirectement - également sur lecomment_text().il nostro filtro non avrebbe effetto. Appliquer le filtre à la seule fonction
comment_text(), parce que là où nous aurions des résultats partiels est utiliséeget_comment_text()notre filtre n'aurait aucun effet.En revanche, en appliquant le filtre à
get_comment_text()- au moins comme il est écrit, le moteur actuel de WordPress - elle agirait sur les fonctions entrabe.