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

概要

get_comment_author_urlフィルタは、コメント投稿者のURLを取得する際に使用されるフィルタです。このフィルタを利用することで、コメントの投稿者のURLをカスタマイズしたり、条件に応じて変更したりすることができます。以下は、一般的にこのフィルタが用いられるケースです。

  1. コメント投稿者のURLを特定の条件によって変更する。
  2. 外部リンクとして、特定のドメインのみを許可する。
  3. URLに特定のパラメータを追加する。
  4. セキュリティ目的でリンクをカスタマイズ(例:nofollowを追加)。
  5. コメント投稿者のURLを短縮URLに変更する。
  6. 特定のユーザーグループによるURLのカスタマイズ。
  7. 投稿者のロールに応じたメッセージを表示するための条件付きリンク。
  8. コメントの表示スタイルを変更する際に利用する。

構文

add_filter('get_comment_author_url', 'callback_function_name', 10, 2);

パラメータ

  • $author_url: コメント投稿者のURL
  • $comment: コメントオブジェクト

戻り値

  • フィルタを通過したコメント投稿者のURL(string

関連する関数

https://refwp.com/?titleonly=1&s=get_comment_author_url

使用可能なバージョン

このフィルタは、WordPress 1.5.0以降で利用可能です。

コアファイルのパス

wp-includes/comment.php

この関数のアクションでの使用可能性

アクション名 使用可能
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

サンプルコード

サンプル 1: URLを特定のドメインに制限する

add_filter('get_comment_author_url', 'limit_comment_author_url', 10, 2);
function limit_comment_author_url($author_url, $comment) {
    if (!preg_match('/^https?://(example.com|example.org)/', $author_url)) {
        return 'https://example.com';
    }
    return $author_url;
}

このサンプルは、コメント投稿者のURLが example.com または example.org でない場合、デフォルトで https://example.com を返します。

サンプル 2: URLにnofollow属性を追加する

add_filter('get_comment_author_url', 'add_nofollow_to_comment_url', 10, 2);
function add_nofollow_to_comment_url($author_url, $comment) {
    return '<a href="' . esc_url($author_url) . '" rel="nofollow">' . esc_html($author_url) . '</a>';
}

このサンプルコードは、コメント投稿者のURLに nofollow 属性を追加します。

サンプル 3: URLを短縮URLに変換する

add_filter('get_comment_author_url', 'shorten_comment_author_url', 10, 2);
function shorten_comment_author_url($author_url, $comment) {
    return 'https://short.url/' . base64_encode($author_url);
}

このサンプルでは、コメント投稿者のURLを短縮形式に変換し、Base64エンコードを追加します。

サンプル 4: 条件に応じた異なるURLを返す

add_filter('get_comment_author_url', 'conditional_comment_url', 10, 2);
function conditional_comment_url($author_url, $comment) {
    if (is_user_logged_in()) {
        return 'https://loggedin.example.com';
    }
    return 'https://guest.example.com';
}

このコードは、ユーザーがログインしているかどうかに基づいて異なるURLを返します。

サンプル 5: URLをカスタムパラメータ付きで返す

add_filter('get_comment_author_url', 'custom_param_comment_author_url', 10, 2);
function custom_param_comment_author_url($author_url, $comment) {
    return $author_url . '?source=comment';
}

このサンプルは、コメント投稿者のURLに ?source=comment というパラメータを追加します。

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


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