Bonjour à tous,

Une client me demande de faire en sorte que le formulaire de commentaire apparaisse "sous" un commentaire auquel ont veut répondre lorsque l'on appuye sur "répondre" ( comment_reply_link ). Sauf que voilà, j'ai réussi à trouver la réponse une fois, grace à une fonction native de wordpress, et cette fois-ci j'ai beau chercher, je ne retrouve pas...et google ne m'aide pas.

Ce que je fais

J'ai tout de même trouvé un site proposant d'activer le js des commentaires avec cette fonction :

function theme_queue_js(){
if ( (!is_admin()) && is_singular() && comments_open() && get_option('thread_comments') )
  wp_enqueue_script( 'comment-reply' );
}
add_action('wp_print_scripts', 'theme_queue_js');

Et bien entendu, ça ne fonctionne pas

Ce que je veux

Je souhaiterai afficher :

la liste des commentaires avec un lien reply (ok )
Lorsque l'ont clic sur répondre, le formulaire de commentaire s'affiche juste sous ce commentaire.
le contact form ( ok )

Ce que j'obtiens

Le formulaire de commentaire reste perpetuellement affiché en bas de page, sous la liste de tous les commentaires.

Précisions :
Wordpress derniere version 4.4.1
Jetpack

Mon template de commentaires :

if ( have_comments() ) : ?>
    <div class="commentlist">
        <?php if ( post_password_required() ) : ?>
            <p class="nocomments"><?php _e( 'Protégé par mort de passe. Entrez le mot de passe pour voir les commentaires' ); ?></p>
            <?php return; ?>
        <?php endif; ?>

        <div id="comments" class="comments-title">
            <h1><?php comments_number ( 'Aucun commentaire', '1 commentaire', '% commentaires') ?></h1>
        </div>

        <ol>
            <?php wp_list_comments( array( 
                'style'             => 'ol',
                'avatar_size'       => '70',
                'callback'          => 'esti_comment',
                ));
            ?>
        </ol>

    <?php else : ?>
    <h3 class="comments-title nocomments"><span><?php comments_number ( 'Aucun commentaire' ) ?></span></h3>
<?php endif; ?>

<?php // Commentaires fermés
    if ( have_comments() && ! comments_open() ) : 
    ?>
    <div id="responds">
        <p class="nocomments"><?php _e( 'Les commentaires sont fermés.' ) ?></p>
    </div><!-- #responds -->
<?php endif; ?>

<?php

comment_form (); ?>

3 réponses


Estillia
Auteur
Réponse acceptée

Voilà le code manquant, permettant d'utiliser le js dans les commentaires.
Si ce code ne fonctionnait pas, c'est que je faisais un callback vers mon propre système de commentaires et qu'il est pas d'accord avec l'idée.

<?php
function wpse52737_enqueue_comment_reply_script() {
    if ( get_option( 'thread_comments' ) ) {
        wp_enqueue_script( 'comment_reply' );
    }
}
add_action( 'comment_form_before', 'wpse52737_enqueue_comment_reply_script' );
?>
Estillia
Auteur

Vraiment aucune idée ?

Our Replies feature makes real-time conversation easy and effective, whether you're hosting a real-time Q&A session - or encouraging conversation with your audience UPSers