通过catgeory显示wp自定义帖子

时间:2017-06-13 18:49:51

标签: wordpress

添加此代码以按类别显示wp自定义帖子,但在添加posts_per_page =" 5"

时无法使分页工作
<?php query_posts('post_type=encounters_news'); while (have_posts()) : the_post(); ?>
    <?php $terms = get_the_terms($post->ID, 'encounters_news_categories');
                foreach($terms as $item):
                    if($item->slug == "chapter-news"):?>
    <?php get_template_part( 'content-news', 'page' ); ?>
    <?php //comments_template( '', true ); ?>
    <?php endif; ?>
    <?php endforeach; ?>
    <?php endwhile; wp_reset_query(); ?>
    <?php encounters_content_nav( 'post-nav' ); ?>

重写并更改为此代码

   <?php
  // set up or arguments for our custom query
  $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
  $post_type = 'encounters_news';
  $tax = 'chapter-news';
  $tax_terms = get_terms($tax);  
  if ($tax_terms) {
  foreach ($tax_terms  as $tax_term) {
  $query_args = array(
 'post_type' => $post_type,
 '$tax' => $tax_term->slug,
 'showposts' => 5,
 'paged' => $paged
  ); wp_reset_query();
  }}
 // create a new instance of WP_Query
 $the_query = new WP_Query( $query_args ); ?>
    <?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); // run the loop ?>
    <?php get_template_part( 'content-news', 'page' ); ?>
    <?php endwhile; ?>
    <?php if ($the_query->max_num_pages > 1) { // check if the max number of pages is greater than 1  ?>
   <div class="navigation">
      <div class="alignleft"><?php echo get_previous_posts_link( '&laquo; Previous' ); // display newer posts link ?></div>
      <div class="alignright"><?php echo get_next_posts_link( 'More &raquo;', $the_query->max_num_pages ); // display older posts link ?></div>

此代码根据需要创建分页,但显示所有Encounters新闻类别而不仅仅是章节新闻类别。

建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

解决

<?php

$query = new WP_Query( array(
'post_type' => '',          // name of post type.
'tax_query' => array(
    array(
        'taxonomy' => '',   // taxonomy name
        'field' => '',      // term_id, slug or name
        'terms' => ,       // term id, term slug or term name

    )
),'showposts' => 5,
    'paged'=>$paged
) );

while ( $query->have_posts() ) : $query->the_post();

// do stuff here....
endwhile;

/**
* reset the orignal query
* we should use this to reset wp_query
*/
wp_reset_query();?>
相关问题