Wordpress自定义wp_pagenavi不适用于具有自定义查询的自定义页面

时间:2013-05-18 07:29:31

标签: wordpress navigation

我正在尝试做一些自定义页面,我没有使用wp_pagenavi插件,而是使用我的自定义页面的自定义函数,现在它只适用于index.php页面,但它在几天前工作正常我之前添加了更多查询元素。

//custom pagepavi function
function my_pagenavi( $the_query = false ){
  global $wp_query;
  $query = ($the_query) ? $the_query : $wp_query;
  $max = $query->max_num_pages;
  $current_page = max(1, get_query_var('paged')); 
  $big = 999999999; 
  if ( $max > 1 ) { 
        echo "<div class='pagination' style='height:auto'>";
        echo paginate_links(array(
              'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),  
              'format' => '?paged=%#%',
              'current' => $current_page,
              'show_all'     => false,
              'total' => $max, 
              'type' => 'list',
              'prev_text' => __('PREV','dnp_theme'),
              'next_text' => __('NEXT','dnp_theme'), 
        ));  
        echo "</div>";
  }

}

现在这是我模板页面的循环。

  //some query stuff
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $query = 'offset=0&paged='.$paged;

  $blogs = new WP_Query($query);

  if ( $blogs->have_posts() ) : ?>              

        <?php /* Start the Loop */ ?>

        <?php while ( $blogs->have_posts() ) : $blogs->the_post(); ?>
              <?php get_template_part( 'content', get_post_format() ); ?>
        <?php endwhile; ?>

        <?php my_pagenavi( array('query' => $blogs) ); ?>
  <?php endif; ?>

为什么不加载任何东西?发生了什么事?

2 个答案:

答案 0 :(得分:0)

查询不正确,这就是它无法正常工作的原因,至少它不是,不是我的工作正常:)

而不是

$blogs = new WP_Query($query);

以及所有应该

$blogs = query_posts( 'post_type=post&posts_per_page=4&paged='.get_query_var('paged') );

循环就像任何其他循环一样完美

  if ( have_posts() ) : ?>              

        <?php /* Start the Loop */ ?>

        <?php while ( have_posts() ) : the_post(); ?>
              <?php get_template_part( 'content', get_post_format() ); ?>
        <?php endwhile; ?>

        <?php my_pagenavi(); ?>
  <?php endif; ?>

答案 1 :(得分:-1)

结束后编写此代码

全球$ wp_query;

$ big = 999999999; //需要一个不太可能的整数

echo paginate_links(array(

'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),

'format' => '?paged=%#%',

'current' => max( 1, get_query_var('paged') ),

'total' => $wp_query->max_num_pages

));