嗨,我正在为 WordPress wp_query工作,它对我来说很好。分页正在模板页面上工作,但是当我创建一个简码并尝试显示分页时,它不起作用,但相同的代码正在模板文件上工作这是我的查询
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$wp_query = new WP_Query();
$wp_query->query('cat=4&showposts=5'.'&paged='.$paged);
内容显示代码
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<?php the_title(); ?>
和最后的分页
<?php endwhile; ?>
<div class="twf_pagination">
<?php echo paginate_links( $args ); ?>
</div>
谁能告诉我我做错了什么?我该如何解决?谢谢
你在这里完全破坏了你的主要查询。您在此处遇到以下问题:
-
不要使用变量
$wp_query
。这是主查询使用和设置的全局变量。而是使用像$my_query
这样的变量。查看 codex,WP_Query
了解如何构造正确的自定义查询 -
我在任何地方都看不到您正在重置帖子数据。在分页功能后
wp_reset_postdata()
大量使用 -
请记住,应返回短代码的输出,而不是回显。使用缓冲区保存输出并在末尾返回,或者将输出添加到变量并返回该变量。查看简码 API 并了解如何正确构建简码
-
查看 codex,
paginate_links()
了解如何在自定义查询中正确使用 use 函数