WordPress的分页(next_posts_link)定制wp_query不显示(Wordpre

2019-07-18 07:27发布

类似的问题已经被问过,但我想不出什么我错过!

我有一个自定义类型的字段,类似于定期存档或类别页面静态页面,但我不能让分页工作。
如果我手动去第2页(即增加了链接... /页/ 2)我得到的“较新的文章”链接,但不是在第一页上旧的! next_posts_link()只是似乎不存在(不派息注射或任何东西)

这里是我的代码:

  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

  $query_args = array (
        'post_type' => 'bb_articoli',
        'meta_key' => 'bb_data-pubblicazione',
        'orderby' => 'meta_value_num',
        'order' => 'DESC',
        'posts_per_page' => 2,      //for testing purposes
        'paged' => $paged,
        'meta_query' => array(
            array('key' => 'bb_fonte-pubblicazione',
                  'value' => 2,
                  'compare' => '='
                  )
        )
  );

  $query = new WP_Query($query_args);

    if ( $query->have_posts() ) :
       while ( $query->have_posts()) :
             $query->the_post();
             get_template_part( 'content' , get_post_format());
       endwhile;

     next_posts_link();
     previous_posts_link();

     else :
         get_template_part( 'content', 'none' );
 endif;

任何帮助是极大的赞赏。 谢谢

只为信息:使用儿童主题上20 12

Answer 1:

为什么你的解决方案工作的原因是因为要覆盖全球$ wp_query变量。 一个更好的解决办法是增加$查询 - > MAX_NUM_PAGES到next_posts_link()。

next_posts_link('« Older Entries', $query->max_num_pages)

其中$查询是新创建的对象的名称。 这样,您保存$ wp_query。



Answer 2:

好了,想通了,所以想分享以供将来参考:

对于一些未知的原因next_posts_link()和previous_posts_link()只工作,如果正常的查询对象叫做$wp_query

因此,相应地改变你的查询对象获得了整个事情的工作:

$wp_query = new WP_Query($query_args);

if ( $wp_query->have_posts() ) :
   while ( $wp_query->have_posts()) :
         $wp_query->the_post();
           // do something
   endwhile;

 next_posts_link();
 previous_posts_link();

对我的作品,但我还没有彻底测试它。 据我看这不是记录任何地方,肯定不利于食品。 找到了答案由madhavaji注释4在这里 。

干杯



Answer 3:

我遇到过同样的问题。 我尝试了所有的解决方案,但没有人帮助我。

因此,对于那些谁也无法解决这个问题上面解决方案在这里是我做了什么:

<?php
    global $wp_query, $paged;

    if( get_query_var('paged') ) {
        $paged = get_query_var('paged');
    }else if ( get_query_var('page') ) {
        $paged = get_query_var('page');
    }else{
        $paged = 1;
    }

    $wp_query = null;
    $args = array(
        'post_type' => array("fashion", "tv", "sport"),
        'orderby'=>'date',
        'order'=>'DESC',
        'posts_per_page' => 5,
        'paged' => $paged
    );
    $wp_query = new WP_Query();
    $wp_query->query( $args );

    while ($wp_query->have_posts()) : $wp_query->the_post();
        /* YOUR CONTENT HERE */
    endwhile;

    next_posts_link('next');
    previous_posts_link('previous');

    wp_reset_query();
?>

重要的是,因为与全球varriables开始你的代码next_posts_link()previous_posts_link()函数读取global $paged$wp_query值。

我希望我能帮助!



文章来源: Wordpress pagination (next_posts_link) on custom wp_query not showing