概要
comment_text
フィルタは、WordPressにおいてコメント文を表示する際に利用されるフィルタです。このフィルタは、デフォルトのコメント内容を変更したり、追加の処理を行う際に役立ちます。よく使われる機能には以下のようなものがあります。
- コメント本文にHTMLタグを追加する
- コメント内の特定の単語をフィルタリングする
- コメント投稿者の名前を強調表示する
- スパムコメントの検出とマーク
- コメントにカスタムクラスを追加する
- コメント内のURLを自動的にリンク化する
- 特定の条件に基づいてコメント内容を隠す
- コメントの内容を翻訳する
構文
add_filter('comment_text', 'フィルタ関数名', 優先度, 引数の数);
パラメータ
comment_text
(string): フィルタ対象のコメントテキスト。$comment
(WP_Comment): コメントオブジェクト。
戻り値
- フィルタリングされたコメントテキスト(string)。
関連する関数
https://refwp.com/?titleonly=1&s=comment_text
このフィルタを使用可能なバージョン
comment_text
フィルタは、すべてのWordPressバージョンで使用可能です。
このフィルタが含まれるワードプレスのコアファイルのパス
wp-includes/comment-template.php
サンプルコード
サンプルコード1: コメント内の特定の単語を置換する
add_filter('comment_text', 'replace_word_in_comment');
function replace_word_in_comment($comment_text) {
return str_replace('禁止語', '******', $comment_text);
}
このサンプルコードは、コメント内の「禁止語」を「******」に置換します。これにより、不適切な言葉が表示されることを防ぎます。
サンプルコード2: コメントにカスタムクラスを追加する
add_filter('comment_text', 'add_custom_class_to_comment');
function add_custom_class_to_comment($comment_text) {
return '<span class="custom-comment">' . $comment_text . '</span>';
}
このサンプルコードは、全てのコメントを<span>
タグで囲み、custom-comment
というクラスを追加します。これにより、CSSでスタイリングが可能になります。
サンプルコード3: スパムコメントの検出
add_filter('comment_text', 'detect_spam_comment');
function detect_spam_comment($comment_text) {
if (strpos($comment_text, 'スパム') !== false) {
return 'このコメントはスパムと見なされました。';
}
return $comment_text;
}
このサンプルコードは、コメントに「スパム」という言葉が含まれている場合、そのコメントをスパムとしてマークします。
サンプルコード4: 自動リンク化
add_filter('comment_text', 'auto_link_urls');
function auto_link_urls($comment_text) {
return preg_replace('/(http://[^s]+)/', '<a href="$1">$1</a>', $comment_text);
}
このサンプルコードは、コメント内のURLを自動的にリンク化します。これにより、ユーザーがリンクをクリックしやすくなります。
サンプルコード5: コメントの内容を翻訳する (例)
add_filter('comment_text', 'translate_comment_text');
function translate_comment_text($comment_text) {
// ここに翻訳処理を追加します。
return str_replace('Hello', 'こんにちは', $comment_text);
}
このサンプルコードは、コメント内の「Hello」を「こんにちは」に翻訳します。他の言語に対応する場合でも同様の方法で対応できます。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
このフィルタは特定のWordPressバージョンで非推奨又は削除されていません。