get_comment_author_link()WP 1.5.0

Gets the HTML link (<a>) to the author's site of the current comment. The anchor of the link will be the author's name. If the author did not specify their site when commenting, the function will return just the author's name, without a link.

Returns

String. The name of the comment author or the HTML link to the author's site.

Usage

echo get_comment_author_link( $comment_ID );
$comment_ID(int/object)
ID or object of the comment whose author's link needs to be obtained. By default, null - the current comment in the comment loop.
Default: null - the current comment.

Examples

0

#1 Get the name of the author of the comment as a link to the site

Suppose in the comment loop we need to display the name of the author of the comment as a link to his site:

$author = get_comment_author_link();
echo $author;

/*
Result:
<a href="http://author-example.com/" rel="external nofollow" class="url">Eugene</a>

If the author doesn't have a link to the site, result will be:
Eugene
*/
0

#2 Specify the comment ID

$author = get_comment_author_link( 76 );
echo $author;

// Returns: <a href="http://author-example.com/" rel="external nofollow" class="url">Eugene</a>

Note

Before returning the result, the function runs it through the filter get_comment_author_link.

Changelog

Since 1.5.0 Introduced.
Since 4.4.0 Added the ability for $comment_id to also accept a WP_Comment object.

get_comment_author_link() code WP 6.9.1

function get_comment_author_link( $comment_id = 0 ) {
	$comment = get_comment( $comment_id );

	if ( ! empty( $comment->comment_ID ) ) {
		$comment_id = $comment->comment_ID;
	} elseif ( is_scalar( $comment_id ) ) {
		$comment_id = (string) $comment_id;
	} else {
		$comment_id = '0';
	}

	$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 );
}