won*_*ana 7 wordpress pagination wordpress-theming custom-post-type
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$loop = new WP_Query(
array(
'post_type' => 'html5-blank',
'posts_per_page' => 5,
'paged'=>$paged
)
);
?>
<?php if ($loop->have_posts()): while ($loop->have_posts()) : $loop->the_post(); ?>
//Loop Code Here..
<?php wp_reset_query(); ?>
<nav>
<?php previous_posts_link( 'Newer posts »' ); ?>
<?php next_posts_link('Older »') ?>
</nav>
<?php endwhile; ?>
<?php else: ?>
Run Code Online (Sandbox Code Playgroud)
我输入结果的下一页上的网址是:www.mywebsite.com/blog/page/2正在工作.但我无法显示分页链接.
哪里出错了?
编辑:分页链接显示在page/2/主博客页面中,但不在主博客页面中.为什么?
Tre*_*vor 16
我建议使用自定义帖子wp_query进行分页的方法有3种.不幸的是,到目前为止还没有很多关于此的信息,或者至少在某些情况下还不清楚.希望这有帮助!
注意,你也确实把wp_reset_postdata()放在了错误的地方,但是还需要更多才能让它正常工作.
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'posts_per_page' => 1,
'paged' => $paged,
'post_type' => 'cpt_type'
);
$cpt_query = new WP_Query($args);
?>
<?php if ($cpt_query->have_posts()) : while ($cpt_query->have_posts()) : $cpt_query->the_post(); ?>
//Loop Code Here...
<?php endwhile; endif; ?>
<nav>
<ul>
<li><?php previous_posts_link( '« PREV', $cpt_query->max_num_pages) ?></li>
<li><?php next_posts_link( 'NEXT »', $cpt_query->max_num_pages) ?></li>
</ul>
</nav>
Run Code Online (Sandbox Code Playgroud)
你会看到上面的,略有不同的格式previous_posts_link和next_posts_link现在访问max_num_pages变量.访问时一定要使用自己的查询变量名max_num_pages.注意我使用$ cpt_query,因为那是我的查询示例的变量.
这是许多人建议的,但要小心将$ wp_query变量设置为临时变量并重新分配它,否则你将遇到各种麻烦.这就是我推荐选项#1的原因.正如CSS Tricks所述,你可以这样做:
<?php
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('showposts=6&post_type=news'.'&paged='.$paged);
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
<!-- LOOP: Usual Post Template Stuff Here-->
<?php endwhile; ?>
<nav>
<?php previous_posts_link('« Newer') ?>
<?php next_posts_link('Older »') ?>
</nav>
<?php
$wp_query = null;
$wp_query = $temp; // Reset
?>
Run Code Online (Sandbox Code Playgroud)
正如您可以做的另一个选择是使用WP-pagenavi插件,并按照选项#1设置您的查询.但是,在安装插件后,在代码中进行一次更改,删除元素中的所有内容并替换为此函数.所以你最终会:
<nav>
<?php wp_pagenavi( array( 'query' => $cpt_query ) ); ?>
</nav>
Run Code Online (Sandbox Code Playgroud)
我认为你放<?php wp_reset_query(); ?>错了地方..它不应该在分页代码的下一个或之后吗?
像这样的东西
<?php endwhile; ?>
<?php else: ?>
<?php wp_reset_query(); ?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46219 次 |
| 最近记录: |