【发布时间】:2013-10-01 06:15:25
【问题描述】:
所以我创建了专门的页面模板,我想在这个页面上列出最近的 3 篇博客文章,并使用通常的分页链接将用户带到上一篇或下一篇 3 篇文章。
我已经填充了列表,并且出现了链接,但是当我单击上一个或下一个链接时,我只会得到与以前相同的 3 个帖子。我可以看到 URL 更改(/blog/page/2),但显示的帖子始终是最近的三个。
更新。在变得非常沮丧之后,我决定让事情回归基础。下面的 sn-p 是我的模板中唯一的代码,只是为了基本上隔离循环,这个 STILL 并没有修复它。我得到的只是页面上的单个帖子,但是如果我在 url 末尾手动键入 /page/2 ,它会将我带到第 2 页并显示不同的帖子。但是,我看到的唯一与分页有关的链接是“较新的帖子”(仅出现在第 2 页上)。为什么“旧”帖子没有显示?
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 1,
'paged' => $paged,
);
$postslist = get_posts( $args );
foreach ($postslist as $post) : setup_postdata($post);
?>
<article>
<h2 class="fnt25 noBtmMarg"><a href="<?php echo get_permalink(); ?>" title="Read: <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="meta fnt18 pMarginBottom">Posted on: <?php the_date(); ?></div>
<div class="fnt22"><?php print_custom_field('listingDesc'); ?></div>
<a href="<?php echo get_permalink(); ?>" class="floatRight fnt22" title="Read the full article: <?php the_title(); ?>">Read more...</a>
<div class="clearfix"></div>
</article>
<?php endforeach; ?>
<div class="nav-previous alignleft"><?php next_posts_link( 'Older posts' ); ?></div>
<div class="nav-next alignright"><?php previous_posts_link( 'Newer posts' ); ?></div>
【问题讨论】:
-
您是否在这段代码之前访问或操作 wp_query(或 get_posts/get_post 或 $post 对象)?此外,您访问的某些帖子是否有可能是自定义帖子?
-
不,这段代码是我第一次接近 wp_query 或循环。我确实有自定义帖子类型,但我不希望它们被包含在内,这就是为什么我要具体说明“帖子”项目类型。
-
好的,我假设您的帖子总数不止 3 个(不是自定义帖子)。在这种假设下,也许这个来自 wordpress 的建议? “如果在您的 php.ini 中启用了 mysql.trace_mode,此功能将不起作用(静默失败)。如果您无法编辑该文件,请尝试将 ini_set('mysql.trace_mode', 0); 添加到主题的 functions.php ”。或者,当您不建议特定的 post_type 时会发生什么,那么它是否有效(同时显示帖子和自定义帖子)?
-
确实,我有 6 个帖子,所以第 2 页应该填满。我尝试使用代码编辑 functions.php 文件,但这对结果没有影响。更改代码以删除帖子类型使其完全停止工作。页面仍然呈现,但没有返回任何帖子...查看完整页面代码直到我复制了我已经粘贴的位是否有用?
-
我发现wp.tutsplus.com/tutorials/wordpress-pagination-a-primer 真的很有帮助。底部有一个替代选项的解释,称为“更好的解决方案”。调查一下。我能想象到的唯一另一件事是你的页脚。但是通过那个教程,也许它会澄清一些我们没有看到的东西。
标签: wordpress pagination