已经提出了类似的问题,但我无法弄清楚我想念的是什么!
我有一个自定义类型字段的静态页面,类似于常规存档或类别页面,但我无法进行分页工作。
如果我将手动转到第2页(即添加到链接... / page / 2),我会收到“较新的帖子”链接,但第一页上的不是对于年长者! next_posts_link()似乎不存在(没有div注入或任何东西)
这是我的代码:
$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;
非常感谢任何帮助。由于
乙
仅供参考:二十二日使用儿童主题
答案 0 :(得分:14)
您的解决方案之所以有效,是因为您要覆盖全局$ wp_query变量。更好的解决方案是将$ query-> max_num_pages添加到next_posts_link()。
next_posts_link('« Older Entries', $query->max_num_pages)
其中$ query是新创建的对象的名称。这样就可以保留$ wp_query。
答案 1 :(得分:8)
由于某些未知原因,如果调用查询对象$wp_query
,则next_posts_link()和previous_posts_link()只能正常工作!
因此,相应地更改查询对象会使整个过程正常工作:
$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();
适合我,但我没有彻底测试过。据我所知,这在任何地方都没有记载,肯定不在法典中。找到了答案here in comment 4 by madhavaji。
干杯
答案 2 :(得分: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();
?>
重要的事情是使用全局变量启动代码,因为next_posts_link()
和previous_posts_link()
函数正在读取global $paged
和$wp_query
值
我希望我能帮忙!