简体   繁体   中英

Query Page with Posts In WordPress

I am pulling posts from a specific category. This feature works. However, I also need it to pull pages every now and then and I can't figure out a way to get it to pull this in addition to the posts.

HTML/PHP

<?php query_posts('cat=8&posts_per_page=3'); while (have_posts()) : the_post(); ?> 
  <div>
      <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
      <a href="<?php the_permalink(); ?>"><img src="<?php echo $image[0]; ?>" class="card-img img-responsive"></a>
      <p class="feature-card-head"><?php the_title(); ?></p>
      <p class="feature-card-txt"><?php echo get_the_excerpt(); ?></p>
  </div>

<?php endwhile; ?>
<?php wp_reset_query(); ?>

I'd like to keep this structure and find a way to include pages, any feedback is helpful!

You cannot fetch posts and use this query as it is. WordPress posts have no categories by default so the cat=x part will always exclude automatically all posts.

I think there is no better solution than using a second query. Depending on what you are using this for, it may be better to separate these loops.

If you want to use a single loop for multiple queries consider merging the query like mentioned here :

<?php 

    $query1 = new WP_Query(array(
        'cat' => 8,
        'post_type' => 'post',
        'posts_per_page' => 3
    ));
    $query2 = new WP_Query(array(
        'post_type' => 'page',
    ));

    $wp_query = new WP_Query();

    $wp_query->posts = array_merge( $query1->posts, $query2->posts );
    $wp_query->post_count = $query1->post_count + $query2->post_count;

?>

<?php while( $wp_query->have_posts() ): $wp_query->the_post(); ?> 

  <div>
      <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'single-post-thumbnail' ); ?>
      <a href="<?php the_permalink(); ?>"><img src="<?php echo $image[0]; ?>" class="card-img img-responsive"></a>
      <p class="feature-card-head"><?php the_title(); ?></p>
      <p class="feature-card-txt"><?php echo get_the_excerpt(); ?></p>
  </div>

<?php endwhile; wp_reset_query(); ?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM