WordPress: filtrer le contenu des commentaires

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é.

2 commentaires à "WordPress: filtrer le contenu des commentaires"

  1. 6 février 2010 Vik :

    Excusez que la différence entre

    1
    comment_text

    et

    1
    get_comment_text

    et pourquoi utiliser les deux?

  2. 7 février 2010 Giovambattista Fazioli :

    e comment_text_rss . @ Vik: la version actuelle de WordPress, vous pouvez appliquer le filtre aux deux fonctions, en vérité, il ya aussi get_comment_excerpt() , le comment_excerpt() et comment_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 una echo interna) mentre la seconda, get_comment_text() , lo restituisce in una variabile, tipo: Cependant, la différence entre comment_text() et get_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'un echo à l'intérieur) tandis la seconde, get_comment_text() , retourne dans une variable, tapez:

    1
    get_comment_text ( ) ; $ Commentaire = get_comment_text ();

    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 le comment_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 entrocontennuta comment_text() . . Il s'ensuit que ce serait suffisant pour appliquer la fonction de filtre ne get_comment_text() pour agir - indirectement - également sur ​​le comment_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ée get_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.

Laisser un commentaire

XHTML TAG PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> CODE D'INSERTION:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL