WordPress: filtert den Inhalt der Kommentare

Ich musste ein nerviges Problem auf einem WordPress Blog zu beheben: Benutzer Kommentare hinterlassen mit langen Sätzen. Dies ergab die Veröffentlichung des Textes, sowohl im Backend, noch schlimmer, im Frontend. Die Wirkung war wirklich schrecklich und auf Hand-zu vermeiden, jeden einzelnen Kommentar moderieren, war die einzige Lösung heraus zu filtern - irgendwie - die Ausgabe der Kommentare.
Zum Glück (und ist einer der Gründe, warum ich liebe alle Dinge WP) Wordpress können Sie einen Filter, um die Ausgabe der Kommentare hinzuzufügen. In meinem Fall war es genug, um in den Akten zu nehmen functions.php die folgenden Codezeilen:

1
2
3
4
5
6
7
8
9
10
11
12
$content ) { filter_comment Funktion ($ content) {
explode ( " " , $content ) ; $ A = explode ("", $ content);
"" ; $ Content = "";
$a as $word ) { foreach ($ a as $ word) {
strlen ( $word ) > 20 ) $word = substr ( $word , 0 , 20 ) . "[t...]" ; if ( strlen ($ word)> 20) $ word = substr ($ wort, 0, 20) "[t ...]".;
( $content == "" ) ? $word : ( " " . $word ) ; $ Content = ($ content == ""). $ Word:? ("." $ Word);
}
; return $ content;
}

, 'filter_comment' ) ; add_filter ('comment_text', 'filter_comment');
, 'filter_comment' ) ; add_filter ('get_comment_text', 'filter_comment');

Die Worte sind zu lang (über 20) geschnitten werden und, am Ende, fügen [t...] -, um anzuzeigen, dass ein Wort abgeschnitten wird.

2 Kommentare zu "WordPress: filtert den Inhalt der Kommentare"

  1. 6. Februar 2010 Vik :

    Es tut uns leid, was ist der Unterschied zwischen

    1
    comment_text

    und

    1
    get_comment_text

    und warum beides?

  2. 7. Februar 2010 Giovambattista Fazioli :

    e comment_text_rss . @ Vik: Die aktuelle Version von WordPress Sie den Filter auf beiden Funktionen kann sich bewerben, in Wahrheit gibt es auch get_comment_excerpt() , die comment_excerpt() und 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: Doch der Unterschied zwischen comment_text() und get_comment_text() ist (wie in vielen anderen Funktionen in dieser Nomenklatur geschrieben) die Art der Ausgabe: das erste, comment_text() , macht die Bildschirmausgabe (dh ein laufendes echo im Inneren), während die zweite, get_comment_text() , kehrt in einer Variablen ein:

    1
    get_comment_text ( ) ; $ Comment = get_comment_text ();

    nel frontend o nei vari temi. In dem Beispiel, wenn ich beide in setzen get_comment_text() ist eine Menge im Backend verwendet, während die comment_text() im Frontend oder in den verschiedenen Themen.
    . Durch Durchführen einer Reverse Engineering der Code, ist klar, dass die Funktion get_comment_text() in entrocontennuta ist comment_text() . . Daraus folgt, dass es ausreichen würde, um die Filterfunktion gelten nur get_comment_text() zu handeln - indirekt - auch auf der comment_text() .
    il nostro filtro non avrebbe effetto. Anwenden des Filters auf nur Funktion comment_text() , weil dort, wo wir hätten Teilergebnisse verwendet get_comment_text() unsere Filter würde keine Wirkung haben.
    Im Gegensatz dazu Anwenden des Filters auf get_comment_text() - zumindest, wie es die aktuelle Engine von WordPress geschrieben wird - es wäre auf entrabe Funktionen handeln.

Hinterlasse einen Kommentar

TAG XHTML Papiere: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> Platzhalter-Codes:
 <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 


Stop SOPA