Bonjour, j'ai une requête qui obtient un message avec id = x et cela fonctionne, mais il ne contient pas la zone de commentaire.
Est-il possible d'ajouter "obtenir une boîte de commentaire" à la requête?
<?php
$post_id = 104;
$queried_post = get_post($post_id);
$content = $queried_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
?>
Tout d’abord, bienvenue à WPSE!
Par défaut, la zone de commentaire ne vient pas avec l'objet post. Vous recherchez simplement la fonction comments_template
.
Cela devrait être aussi simple que de changer votre code pour ceci:
<?php
$post_id = 104;
$queried_post = get_post($post_id);
$content = $queried_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
comments_template();
?>
Mais si je ne me trompe pas, cela ne fonctionnerait que pour le poste en cours.
En regardant la fonction dans wp-includes/comment-template.php
, il utilise des variables global $post
et global $wp_query
. Vous devrez modifier cette valeur pour que le modèle de commentaires s'affiche pour le message que vous affichez.
Vous pouvez modifier cela en utilisant query_posts
au lieu de get_post
, mais veillez à réinitialiser la requête par la suite:
$post_id = 104;
query_posts( array( 'p' => $post_id ) );
while( have_posts() ) : the_post();
$content = apply_filters( 'the_content', get_the_content() );
$content = str_replace( ']]>', ']]>', $content );
echo $content;
comments_template();
endwhile;
wp_reset_postdata(); // Don't forget!
Je n'ai pas testé cela mais cela devrait fonctionner. Je suggérerais également de lire cette réponse géniale de Rarst pour savoir quand utiliser quelle fonction pour "obtenir des publications". :)
Avec cette requête, vous pouvez ajouter les commentaires.
function get_comments( $args = '' ) {
$query = new WP_Comment_Query;
return $query->query( $args );
}