这里有一个建议,使用comment_reply_link
筛选以更改回复链接。
与其使用正则表达式来更改它,我认为只需再次构建链接就更容易了。
这里我使用的代码与get_comment_reply_link()
核心功能,但我替换$comment->comment_ID
具有$comment->comment_parent
当满足以下条件时:
max_depth === depth + 1
我们可以调整
max_depth
从后端设置或通过
thread_comments_depth_max
过滤器,您可以在其中找到我的答案中的示例
here.
下面是我们的演示插件:
/* Regenerate the reply link but for the comment parent instead */
add_filter( \'comment_reply_link\', function( $link, $args, $comment, $post )
{
if(
isset( $args[\'depth\' ] )
&& isset( $args[\'max_depth\' ] )
&& isset( $args[\'respond_id\' ] )
&& isset( $args[\'add_below\' ] )
&& isset( $args[\'reply_text\'] )
&& isset( $args[\'reply_to_text\'] )
&& (int) $args[\'max_depth\'] === 1 + (int) $args[\'depth\' ]
&& ( ! get_option( \'comment_registration\' ) || is_user_logged_in() )
) {
$onclick = sprintf(
\'return addComment.moveForm( "%1$s-%2$s", "%2$s", "%3$s", "%4$s" )\',
$args[\'add_below\'], $comment->comment_parent, $args[\'respond_id\'], $post->ID
);
$link = sprintf(
"<a rel=\'nofollow\' class=\'comment-reply-link\'
href=\'%s\' onclick=\'%s\' aria-label=\'%s\'>%s</a>",
esc_url(
add_query_arg(
\'replytocom\',
$comment->comment_parent,
get_permalink( $post->ID )
)
) . "#" . $args[\'respond_id\'],
$onclick,
esc_attr(
sprintf( $args[\'reply_to_text\'], $comment->comment_author )
),
$args[\'reply_text\']
);
}
return $link;
}, 10, 4 );
希望有帮助。