get_comment_reply_link()
最后更新于:2021-11-26 09:01:10
get_comment_reply_link( array$args=array(), int|GC_Comment$comment=null, int|GC_Post$post=null)Retrieves HTML content for reply to comment link.
参数
- $args
-
(array) (Optional) Override default arguments.
-
‘add_below’
(string) The first part of the selector used to identify the comment to respond below. The resulting value is passed as the first parameter to addComment.moveForm(), concatenated as $add_below-$comment->comment_ID. Default ‘comment’. -
‘respond_id’
(string) The selector identifying the responding comment. Passed as the third parameter to addComment.moveForm(), and appended to the link URL as a hash value. Default ‘respond’. -
‘reply_text’
(string) The text of the Reply link. Default ‘Reply’. -
‘login_text’
(string) The text of the link to reply if logged out. Default ‘Log in to Reply’. -
‘max_depth’
(int) The max depth of the comment tree. Default 0. -
‘depth’
(int) The depth of the new comment. Must be greater than 0 and less than the value of the ‘thread_comments_depth’ option set in Settings > Discussion. Default 0. -
‘before’
(string) The text or HTML to add before the reply link. -
‘after’
(string) The text or HTML to add after the reply link.
Default value: array()
-
‘add_below’
- $comment
-
(int|GC_Comment) (Optional) Comment being replied to. Default current comment.
Default value: null
- $post
-
(int|GC_Post) (Optional) Post ID or GC_Post object the comment is going to be displayed on. Default current post.
Default value: null
响应
(string|false|null) Link to show comment form, if successful. False, if comments are closed.
源文件
文件: gc-includes/comment-template.php
function get_comment_reply_link( $args = array(), $comment = null, $post = null ) {
$defaults = array(
'add_below' => 'comment',
'respond_id' => 'respond',
'reply_text' => __( 'Reply' ),
/* translators: Comment reply button text. %s: Comment author name. */
'reply_to_text' => __( 'Reply to %s' ),
'login_text' => __( 'Log in to Reply' ),
'max_depth' => 0,
'depth' => 0,
'before' => '',
'after' => '',
);
$args = gc_parse_args( $args, $defaults );
if ( 0 == $args['depth'] || $args['max_depth'] <= $args['depth'] ) {
return;
}
$comment = get_comment( $comment );
if ( empty( $comment ) ) {
return;
}
if ( empty( $post ) ) {
$post = $comment->comment_post_ID;
}
$post = get_post( $post );
if ( ! comments_open( $post->ID ) ) {
return false;
}
if ( get_option( 'page_comments' ) ) {
$permalink = str_replace( '#comment-' . $comment->comment_ID, '', get_comment_link( $comment ) );
} else {
$permalink = get_permalink( $post->ID );
}
/**
* Filters the comment reply link arguments.
*
* @since 4.1.0
*
* @param array $args Comment reply link arguments. See get_comment_reply_link()
* for more information on accepted arguments.
* @param GC_Comment $comment The object of the comment being replied to.
* @param GC_Post $post The GC_Post object.
*/
$args = apply_filters( 'comment_reply_link_args', $args, $comment, $post );
if ( get_option( 'comment_registration' ) && ! is_user_logged_in() ) {
$link = sprintf(
'<a rel="nofollow" class="comment-reply-login" href="https://docs.gechiui.com/functions/get_comment_reply_link/%s">%s</a>',
esc_url( gc_login_url( get_permalink() ) ),
$args['login_text']
);
} else {
$data_attributes = array(
'commentid' => $comment->comment_ID,
'postid' => $post->ID,
'belowelement' => $args['add_below'] . '-' . $comment->comment_ID,
'respondelement' => $args['respond_id'],
'replyto' => sprintf( $args['reply_to_text'], $comment->comment_author ),
);
$data_attribute_string = '';
foreach ( $data_attributes as $name => $value ) {
$data_attribute_string .= " data-${name}="" . esc_attr( $value ) . '"';
}
$data_attribute_string = trim( $data_attribute_string );
$link = sprintf(
"<a rel='nofollow' class='comment-reply-link' href='https://docs.gechiui.com/functions/get_comment_reply_link/%s' %s aria-label='%s'>%s</a>",
esc_url(
add_query_arg(
array(
'replytocom' => $comment->comment_ID,
'unapproved' => false,
'moderation-hash' => false,
),
$permalink
)
) . '#' . $args['respond_id'],
$data_attribute_string,
esc_attr( sprintf( $args['reply_to_text'], $comment->comment_author ) ),
$args['reply_text']
);
}
/**
* Filters the comment reply link.
*
* @since 2.7.0
*
* @param string $link The HTML markup for the comment reply link.
* @param array $args An array of arguments overriding the defaults.
* @param GC_Comment $comment The object of the comment being replied.
* @param GC_Post $post The GC_Post object.
*/
return apply_filters( 'comment_reply_link', $args['before'] . $link . $args['after'], $args, $comment, $post );
}