如何使用元素而不是创建评论回复按钮

时间:2018-12-14 作者:Rishabh Jha

我目前正在设计我的第一个WordPress博客,当我对评论回复按钮进行编码时,我被卡住了,因为我想把评论回复按钮编码进去span 仅元素不a 元素。我知道这是可能的,因为我在一些博客上看到了这一点:

它起作用了。但是,我尽了最大的努力,但还是没能成功。请各位专家帮帮我!我要说的是custom callback 我使用的是评论系统,请浏览一下并给我一个解决方案。

function comment($comment, $args, $depth) {$GLOBALS[\'comment\'] = $comment; ?>
<li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
<div id="div-comment-<?php comment_ID() ?>" class="comment-body">
<div class="comment-author">
<cite class="fn"><?php printf(__(\'%s\'), get_comment_author_link()) ?></cite>
</div>
<?php comment_text(); ?>
<div class="comment-reply">

**** HERE <SPAN> ELEMENT FOR REPLY-BUTTON WILL BE PLACED ****

</div>
</div>
<?php } ?>

enter image description here

这是用于回复的自定义评论表单。

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

您可以生成如下自定义注释回复元素:

这将取代**** HERE <SPAN> ELEMENT FOR REPLY-BUTTON WILL BE PLACED ****.

<?php if ( get_option( \'comment_registration\' ) && ! is_user_logged_in() ) : ?>
    <a rel="nofollow" class="comment-reply-login" href="<?php // wrapped
      echo esc_url( wp_login_url( get_permalink() ) ); ?>">Log in to Reply</a>
<?php else : // User is logged-in or that registration not needed to comment.
// \'respond\' is the ID of the comment form\'s wrapper.
$onclick = sprintf( \'return addComment.moveForm( "%s", "%d", "respond", "%d" )\',
    \'div-comment-\' . $comment->comment_ID, $comment->comment_ID, get_the_ID() ); ?>
    <span class="btn btn-rwr"
      data-href="#comment-<?php echo $comment->comment_ID; ?>" onclick=\'<?php echo $onclick; ?>\'
      aria-label="Reply to <?php echo esc_attr( $comment->comment_author ); ?>">Reply</span>
<?php endif; ?>
Thespan 标记与image. 但是你可以很容易地改变它。。

如果单击自定义span 元素,然后确保已加载注释回复(JavaScript)脚本:(add this code to the theme\'s functions.php file)

add_action( \'wp_enqueue_scripts\', function(){
    if ( is_singular() && comments_open() && get_option( \'thread_comments\' ) ) {
        wp_enqueue_script( \'comment-reply\' );
    }
} );
并确保respond 下面是评论表单的正确IDwrapper:

$onclick = sprintf( \'return addComment.moveForm( "%s", "%d", "respond", "%d" )\'
在CSS中,您还可以添加以下内容:

.comment-reply > span {
    cursor: pointer;
}
默认情况下更新#2comment-reply 在注释中编写脚本(检查以前的更新)以按预期工作<li>, .comment-reply 应置于下方/之后and not inside 这个.comment-body:

<li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
    <div id="div-comment-<?php comment_ID() ?>" class="comment-body">
        ...
    </div><!-- .comment-body -->
    <div class="comment-reply">
        ...the SPAN here..
    </div>
</li>
在CSS中,您应该有如下内容:

#respond + .comment-reply {
    display: none;
}
隐藏“回复”span/单击后的按钮。