WordPress Version: 6.3
/**
* Retrieves the HTML link to the URL of the author of the current comment.
*
* Both get_comment_author_url() and get_comment_author() rely on get_comment(),
* which falls back to the global comment variable if the $comment_id argument is empty.
*
* @since 1.5.0
* @since 4.4.0 Added the ability for `$comment_id` to also accept a WP_Comment object.
*
* @param int|WP_Comment $comment_id Optional. WP_Comment or the ID of the comment for which to get the author's link.
* Default current comment.
* @return string The comment author name or HTML link for author's URL.
*/
function get_comment_author_link($comment_id = 0)
{
$comment = get_comment($comment_id);
$comment_id = (!empty($comment->comment_ID)) ? $comment->comment_ID : (string) $comment_id;
$comment_author_url = get_comment_author_url($comment);
$comment_author = get_comment_author($comment);
if (empty($comment_author_url) || 'http://' === $comment_author_url) {
$comment_author_link = $comment_author;
} else {
$rel_parts = array('ugc');
if (!wp_is_internal_link($comment_author_url)) {
$rel_parts = array_merge($rel_parts, array('external', 'nofollow'));
}
/**
* Filters the rel attributes of the comment author's link.
*
* @since 6.2.0
*
* @param string[] $rel_parts An array of strings representing the rel tags
* which will be joined into the anchor's rel attribute.
* @param WP_Comment $comment The comment object.
*/
$rel_parts = apply_filters('comment_author_link_rel', $rel_parts, $comment);
$rel = implode(' ', $rel_parts);
$rel = esc_attr($rel);
// Empty space before 'rel' is necessary for later sprintf().
$rel = (!empty($rel)) ? sprintf(' rel="%s"', $rel) : '';
$comment_author_link = sprintf('<a href="%1$s" class="url"%2$s>%3$s</a>', $comment_author_url, $rel, $comment_author);
}
/**
* Filters the comment author's link for display.
*
* @since 1.5.0
* @since 4.1.0 The `$comment_author` and `$comment_id` parameters were added.
*
* @param string $comment_author_link The HTML-formatted comment author link.
* Empty for an invalid URL.
* @param string $comment_author The comment author's username.
* @param string $comment_id The comment ID as a numeric string.
*/
return apply_filters('get_comment_author_link', $comment_author_link, $comment_author, $comment_id);
}