我想在我的单曲上设置分页。php文件,以便正确使用无限滚动函数。我知道分页可以放在一个帖子上,但我需要做一个。php页面可以在URL上附加一个变量。我的意思是,如果我有这个URL:
http://www.example.com/post_URL/
我需要它像这样工作:
http://www.example.com/post_URL/page/2/
它需要像这样工作,因为我在主页/主博客页面上有一个无限滚动条,它选择的是get\\u query\\u var(\'page\')变量,它似乎不存在于单个页面中。php页面。它在无限卷轴中不断循环第一页,这似乎在告诉我,它只是反复默认值为“1”。
有没有办法做到这一点?
谢谢你的帮助!
编辑我发现我可以通过转到以下URL手动创建“page”变量:
http://www.example.com/my-article/2/
页面底部的循环将此页面视为第=2页,即使显示相同的内容。我的假设是,页面末尾的2是一个get\\u query\\u var()变量,但在循环/无限滚动期间,它不一定被视为这样。所以我知道它存在,但无法被无限卷轴访问。你认为这是什么原因?
编辑下面是我在查询的单篇文章页面上使用的分页代码(不是我使用的“paged”,而是在单篇文章上应该使用的“page”;我也尝试了“page”,以防万一):
$paged = get_query_var(\'paged\');
$wp_query = new WP_Query(
array(
\'post__not_in\' => array(get_the_ID()),
\'category__not_in\' => 9,
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => 3,
\'paged\' => $paged
)
);
这段代码在主页上的循环中起作用。它在单曲上不起作用。php页面。
编辑,所有的帮助都很好,但仍然没有完全解决问题。当我在主页URL上回显$paged变量时,我得到“0”。如果我使用附加了/2/的url,那么它就是“2”,以此类推(这样就可以了)。因此,它无法将主页识别为“1”页。这是一个无限卷轴,所以它需要能够从1开始,我不确定是否有可能让无限卷轴在这样的单篇文章页面上工作。知道为什么主URL的查询变量页值不为1吗?
SO网友:relish27
我遇到了同样的问题。使用“page”(而不是“paged”)的query\\u var,正如MxmastaMills指出的那样,如果我手动构建URL,我可以将内容放到页面上,如下所示:
www.mydomain.com/[post-type]/[post-slug]/[page]/
但是,我仍然需要分页按钮才能工作,而next\\u posts\\u link()和previous\\u posts\\u link()不能在单个帖子模板上工作。我在任何地方都找不到任何解决方案,所以我创建了自己的分页链接,它们很有效。我在分享,以防这有助于同一条船上的其他人。
// using "page" instead of "paged" here
$paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
// The Query
$args = array(
\'post_type\' => \'my-cpt\',
\'post_status\' => \'publish\',
\'posts_per_page\' => 10,
\'paged\'=>$paged,
\'orderby\' => \'date\',
\'order\' => \'DESC\'
);
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ):
while ( $the_query->have_posts() ):
$the_query->the_post();
// do your display
endwhile;
// used in pagination buttons
$total_pages = $the_query->max_num_pages;
?><div class="posts-navigation clearfix">
<div class="nav-previous">
<?php
$previous_page = $paged + 1;
$previous_page .= "/";
if($paged > 0 && $paged < $total_pages): ?>
<a href="<?php echo esc_url($expert_url . $previous_page); ?>">Older Posts</a>
<?php endif; ?>
</div>
<div class="nav-next">
<?php
$next_page = $paged - 1;
if($next_page == 1) {
$next_page = ""; // if the first page, don\'t include the "1/" at the end of the URL
} else {
$next_page .= "/";
}
if($paged > 1 && $paged <= $total_pages): ?>
<a href="<?php echo esc_url($expert_url . $next_page); ?>">Newer Posts</a>
<?php endif; ?>
</div>
</div><?php
endif;
/* Restore original Post Data */
wp_reset_postdata();