ワードプレスのcomment_textフィルタの使用方法・解説

概要

comment_textフィルタは、WordPressにおいてコメント文を表示する際に利用されるフィルタです。このフィルタは、デフォルトのコメント内容を変更したり、追加の処理を行う際に役立ちます。よく使われる機能には以下のようなものがあります。

  1. コメント本文にHTMLタグを追加する
  2. コメント内の特定の単語をフィルタリングする
  3. コメント投稿者の名前を強調表示する
  4. スパムコメントの検出とマーク
  5. コメントにカスタムクラスを追加する
  6. コメント内のURLを自動的にリンク化する
  7. 特定の条件に基づいてコメント内容を隠す
  8. コメントの内容を翻訳する

構文

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バージョンで非推奨又は削除されていません。

この関数について質問する


上の計算式の答えを入力してください