MENU

comment_author_link()

comment_author_link() は、コメント投稿者の名前にリンクを付与して出力するテンプレートタグです。このリンクは、投稿者がコメント時に指定したウェブサイトURLを指します。もしURLが入力されていない場合は、リンクなしの名前だけを表示します。

目次

機能の説明

comment_author_link() は、コメント投稿者の名前をリンク付きで出力するテンプレートタグです。投稿者が自身のウェブサイトURLを入力している場合、その名前がリンクとなります。入力がない場合は、単純に名前だけが表示されます。

シンプルなコード例

<?php comment_author_link(); ?>

このコードは、コメント投稿者の名前をリンク付きで表示します。コメントループ内で使用することが一般的です。

使い方の解説

  • コメントループ内で使用し、各コメントの投稿者名をリンクとして表示します。
  • 投稿者のURLが指定されている場合、その名前がそのURLへのリンクになります。
  • 管理者がURLを確認することで、リンクを通じた宣伝行為などの対策が可能です。

使用例

<li>
    <p>投稿者: <?php comment_author_link(); ?></p>
</li>

このコードは、コメントリスト内に「投稿者:」という文言とともに、コメント投稿者の名前をリンク付きで表示します。投稿者がURLを指定していない場合は、リンクなしの名前が表示されます。

一緒に使うことが多い関連タグ

comment_author()

comment_author() は、コメント投稿者の名前をリンクなしで表示するテンプレートタグです。

<p>投稿者: <?php comment_author(); ?></p>

このコードは、コメント投稿者の名前をリンクなしで表示します。comment_author_link() との違いは、リンクの有無です。

comment_author_url()

comment_author_url() は、コメント投稿者が指定したウェブサイトURLを取得するテンプレートタグです。

<?php 
$url = comment_author_url();
if ($url) {
    echo '投稿者のウェブサイト: <a href="' . esc_url($url) . '">' . esc_html($url) . '</a>';
}
?>

このコードは、投稿者が指定したURLをリンク付きで表示します。URLが指定されていない場合は、何も出力されません。

使用例(複数タグの組み合わせ)

<li>
    <p><?php comment_author(); ?> (URL: <?php comment_author_url(); ?>)</p>
</li>

この例では、コメント投稿者の名前と指定されたURLを表示します。

追加情報を取得したい場合

comment_author_link() を使用するだけでは、コメント投稿者の詳細情報は取得できません。もし、さらに情報を表示したい場合は、get_comment_author_email() などの関連タグを使用します。

get_comment_author() で取得できる情報

<?php echo get_comment_author(); ?>

このタグで、コメント投稿者の名前を取得して出力します。

出力できる情報

  • name: コメント投稿者の名前
  • email: 投稿者のメールアドレス(get_comment_author_email() で取得可能)
  • url: 投稿者のウェブサイトURL(comment_author_url() で取得)

想定されるトラブル

リンク付きの名前が表示されない

投稿者がURLを指定していない場合、comment_author_link() はリンクなしの名前を表示します。

解決方法

投稿フォームにURLの入力を必須にする設定を検討します。

スパムリンクの対策が必要

コメントに投稿者のURLを利用したスパムが含まれる可能性があります。

解決方法

URLを自動的にチェックし、不正なリンクを削除するフィルターを設定します。

add_filter('get_comment_author_link', function($link) {
    if (strpos($link, 'spam-website.com') !== false) {
        return '不正なリンクが検出されました';
    }
    return $link;
});

このコードは、スパムサイトのリンクが含まれている場合に、それを検出して置換する例です。

Q&A

投稿者がURLを入力しなかった場合、何が表示されますか?

URLが指定されていない場合、comment_author_link() は単純に投稿者の名前だけを表示します。

スパム対策のため、全ての外部リンクを無効化することはできますか?

以下のようなコードで、全てのコメント内リンクを無効化できます。

add_filter('get_comment_author_link', function($link) {
    return strip_tags($link); // HTMLタグを除去
});

まとめ

comment_author_link() は、コメント投稿者の名前にリンクを付与して表示するためのテンプレートタグです。

URLが指定されている場合のみリンク付きで表示され、スパムや不正アクセスの対策が必要になることもあります。

comment_author()comment_author_url() と組み合わせて使うことで、さらに詳細な管理が可能です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次