get_comment_link()
Gets a link to the specified comment. The link is generated considering the hierarchy. The link is returned with a hash at the end #comment-23.
Will return #comment-, not an empty string, if the specified comment does not exist.
echo get_comment_link( 6 ); // #comment-
Do not confuse with get_comments_link(), which returns a link (with anchor) to all comments for a specific post.
-
Uses: get_comment() to get the data of the passed comment $comment.
- Uses global variables: $wp_rewrite and $in_comment_loop.
Hooks from the function
Returns
String.
String— URL to the specified comment.#comment-— If the comment does not exist.
The value is returned, not output to the screen.
Usage
$link = get_comment_link( $comment, $args );
- $comment(int/object)
- ID/object of the comment for which the link needs to be obtained.
Default: null (current comment in the loop) - $args(array)
Arguments. The following defaults are used:
-
cpage(int/string)
The page number of pagination where the comment is located.If this value is specified, the current comment page number will not be calculated. Since version 4.4.
If 0 is specified here, the URL will not have the part:
/comment-page-1.
Default: '' -
page
The page number of pagination where the comment is located. Used as a preliminary value for the cpage parameter before the comment page is calculated. Needed for backward compatibility, and ideally this parameter can be completely omitted.
Default: 0 -
type
Type of comment (not used directly).
Default: 'all' -
per_page
Number of comments per pagination page.
Default: 0 - max_depth
Max depth for hierarchical comments (not used directly).
Default: ''
Default: array()
-
Examples
#1 An example of what the function gets
echo get_comment_link( 17 ); // http://example.com/postname/comment-page-1#comment-17 // If the comment does not exist echo get_comment_link( 6 ); // #comment-
#2 An example of the use of the HTML construct
<a href="<?php echo get_comments_link( $comment ); ?>"> comments to the post </a>
#3 Removing part of the comment pagination page from the URL
Suppose we know beforehand that the comment is on the first page and we set the parameter cpage=0 to avoid adding the extra /comment-page-1 in the URL (in this case the pagination page will not be calculated):
echo get_comment_link( $comm, [ 'cpage'=>0 ] ); // https://wp-kama.ru/question/vyvod-postov#comment-234
#4 Example of Comment Link on the Date in Comments
$posted_on = sprintf( __( 'Posted on %1$s at %2$s', 'textdomain' ), get_comment_date( 'F j, Y' ), get_comment_time( 'g:ia' ) ); echo sprintf( '<a href="%1$s">%2$s</a>', esc_url( get_comment_link() ), $posted_on );
Notes
- See: get_page_of_comment()
- Global. WP_Rewrite. $wp_rewrite WordPress rewrite component.
- Global. true|false. $in_comment_loop
Changelog
| Since 1.5.0 | Introduced. |
| Since 4.4.0 | Added the ability for $comment to also accept a WP_Comment object. Added $cpage argument. |