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.
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
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 )
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 (); ?>
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' );
?>
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