Obtenir du contenu de publication en dehors de la boucle

20

Existe-t-il un moyen d'extraire le contenu d'un autre utilisateur en dehors de la boucle? L'ID est 302 et je dois afficher le contenu de celui-ci sur une autre page.

    
posée Rob 10.05.2012 - 12:44

10 réponses

36

Vous pouvez utiliser get_page() pour renvoyer l'objet $post d'une page statique:

$page_id = 302;
$page_object = get_page( $page_id );
echo $page_object->post_content;

Modifier

De même, vous pouvez utiliser get_post() pour renvoyer l'objet $post d'un message:

$post_id = 302;
$post_object = get_post( $post_id );
echo $post_object->post_content;
    
réponse donnée Chris_O 10.05.2012 - 13:15
5

pour obtenir le contenu du message en dehors de la boucle, vous pouvez écrire quelque chose comme ceci

global $post;
$content = $post->post_content;

if ( !empty( $content ) ) :
    echo $content;
endif;
    
réponse donnée Aamer Shahzad 14.09.2014 - 17:40
3

Si votre contenu comprend des codes abrégés, vous devez utiliser:

$post_id = 22;        
$post_object = get_post( $post_id );        
echo do_shortcode( $post_object->post_content );
    
réponse donnée DSI_ClasH 23.03.2014 - 18:29
1

Pour être complet, inspiré de l’article de Stephen Harris , inspiré du commentaire de Tim ci-dessus , la solution active l'utilisation de the_content() est:

$post_id = 302;
global $post;
$post = get_post($post_id);
setup_postdata( $post );
the_content();
wp_reset_postdata( $post );

Et par conséquent, les filtres sont appliqués (des paragraphes seront insérés, etc.) et les codes courts fonctionnent.

    
réponse donnée Jon 23.05.2014 - 09:07
0

Puisque vous connaissez votre ID de publication cible (302), vous pouvez trouver utile cette syntaxe abrégée que vous pouvez utiliser en dehors de la boucle (bien que ses performances soient sensiblement les mêmes que dans toute autre méthode alternative:)

echo(get_post_field('post_content',302));
    
réponse donnée E. Serrano 24.06.2015 - 23:26
0

Vous pouvez utiliser la fonction get_post_data() pour publier en dehors de la boucle. Placez ce code dans functions.php

function get_post_data($postId) {
    global $wpdb;
    return $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID=$postId");
}

puis ajoutez cet extrait pour plus de contrôle sur le processus

<?php $data = get_post_data(302);
    echo $data->post_date;     // post date
    echo $data->post_title;    // post title
    echo $data->post_content;  // post content
    echo $data->comment_count; // comments number
?>
    
réponse donnée Zohair Baloch 08.02.2016 - 16:57
0

Vous pouvez utiliser, comme indiqué, la solution avec get_post et $post_object->post_content , mais n'oubliez pas d'ajouter un contrôle avant d'utiliser cet objet de publication:

function get_post_content( $post_id = null ) {
    $post_object = get_post( $post_id );
    if ( ! $post_object ) { return ''; }
    //else

    return apply_filters('the_content', $post_object->post_content);
}

echo get_post_content( $other_post_id );
    
réponse donnée Olga Farber 01.03.2017 - 08:22
-1

Vous pouvez simplement appeler get_the_content (postId)

<?php echo get_the_content($postId); ?>
    
réponse donnée NiemBlackPine 20.04.2016 - 21:43
-2

utilisez wp_reset_postdata(); cela fonctionnera .. (édité)

<?php 
$args = array(
        'post_type' => 'posttype',
        'p' => 'post_id'
       );
$the_query = new WP_Query( $args );
if( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <?php the_content(); ?>
    <?php endwhile; endif; 
wp_reset_postdata();
?>

posttype peut être "post", "page" ou votre type de post personnalisé. Ici, p = 302 est votre numéro de poste. J'espère que cela fonctionnera.

    
réponse donnée Jahirul Islam Mamun 04.04.2015 - 08:20
-3

vous pouvez placer du contenu dans une catégorie X et utiliser query_post avant comme ceci:

    <?php query_posts('cat=X&showposts=1'); ?>
    <?php while (have_posts()) : the_post(); ?>
          <?= get_the_content(); ?>
    <?php endwhile; ?>
    
réponse donnée Zakaria Elhariri 10.05.2012 - 13:20

Lire d'autres questions sur les étiquettes