function dp_page_discussion_shortcode( $atts ) {
if ( ! is_singular() ) {
return '';
}
$post_id = get_the_ID();
// Si tu veux que seuls les utilisateurs connectés puissent participer :
$utilisateur_connecte = is_user_logged_in();
// Vérifie que les commentaires sont ouverts pour ce contenu
if ( ! comments_open( $post_id ) ) {
return '<p>La discussion n’est pas ouverte pour cette page.</p>';
}
ob_start();
?>
<div class="dp-discussion">
<h2 class="dp-discussion-titre">Discussion</h2>
<div class="dp-discussion-liste">
<?php
$comments = get_comments( array(
'post_id' => $post_id,
'status' => 'approve',
'order' => 'ASC',
) );
if ( ! empty( $comments ) ) :
?>
<ul class="dp-commentaires">
<?php
wp_list_comments( array(
'style' => 'ul',
'short_ping' => true,
'avatar_size'=> 32,
), $comments );
?>
</ul>
<?php
else :
?>
<p>Aucun message pour le moment. Lancez la discussion !</p>
<?php
endif;
?>
</div>
<div class="dp-discussion-formulaire">
<?php
if ( $utilisateur_connecte ) {
// Formulaire pour ajouter un commentaire
comment_form( array(
'title_reply' => 'Ajouter un message',
'title_reply_to' => 'Répondre à %s',
'label_submit' => 'Envoyer',
'comment_notes_before' => '',
'comment_notes_after' => '',
), $post_id );
} else {
// Message pour les non connectés
echo '<p>Vous devez être connecté pour participer à la discussion.</p>';
echo '<p><a href="' . esc_url( wp_login_url( get_permalink( $post_id ) ) ) . '">Se connecter</a></p>';
}
?>
</div>
</div>
<?php
return ob_get_clean();
}