web-dev-qa-db-de.com

Wie erstelle ich einen Kommentar-Antwort-Button mit dem <span> -Element nicht <a>?

Ich arbeite gerade an der Gestaltung meines ersten WordPress-Blogs und bin beim Codieren des Kommentar-Antwort-Buttons hängen geblieben, weil ich möchte, dass der Kommentar-Antwort-Button nur im span -Element codiert wird, nicht im a Element überhaupt. Ich weiß, dass es möglich ist, weil ich das auf einem Blog gesehen habe:

  

Es klappt. Aber ich habe mein Bestes gegeben, konnte aber kein funktionierendes machen. Könnten Sie mir bitte helfen? Ich erwähne das benutzerdefinierte Rückruf, das ich für das Kommentarsystem verwende. Bitte werfen Sie einen Blick darauf und geben Sie mir eine Lösung.

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 

Hier ist auch das benutzerdefinierte Kommentarformular für die Antwort.

1
Rishabh Jha

Sie können ein benutzerdefiniertes Kommentarantwortelement wie folgt generieren:

Dies ersetzt den **** 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; ?>

Das span-Markup ist identisch mit dem im image . Aber Sie können es leicht ändern ..

AKTUALISIEREN

Wenn nichts passiert Wenn Sie auf das benutzerdefinierte span -Element klicken, stellen Sie sicher, dass das JavaScript-Skript für die Kommentarantwort geladen ist:Diesen Code zur functions.php -Datei des Themas hinzufügen

add_action( 'wp_enqueue_scripts', function(){
    if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
        wp_enqueue_script( 'comment-reply' );
    }
} );

Und stellen Sie sicher, dass die respond unten die richtige ID des wrapper des Kommentarformulars ist:

$onclick = sprintf( 'return addComment.moveForm( "%s", "%d", "respond", "%d" )'

Und in Ihrem CSS können Sie auch Folgendes hinzufügen:

.comment-reply > span {
    cursor: pointer;
}

UPDATE # 2

Damit das Standard-comment-reply-Skript (überprüfen Sie das vorherige Update) wie erwartet funktioniert, sollte in Ihrem Kommentar <li>.comment-reply in unter/nach und nicht in dem .comment-body stehen:

<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>

Und in Ihrem CSS sollten Sie Folgendes haben:

#respond + .comment-reply {
    display: none;
}

um die Schaltfläche "Antworten" span/nach dem Klicken auszublenden.

0
Sally CJ