我有一个自定义的帖子类型插件,它通过短代码引入所有帖子。这一切都很好。我希望能够通过jquery在返回的帖子中进行分页,并尝试了各种在线教程的方法。最近两天一直很痛苦。
我的代码是:
function xma_display_stores() {
$paged = (get_query_var('paged')) ? get_query_var('paged') : 2;
$args = array('post_type' = > 'stores', 'orderby' = > 'title', 'order' = > 'asc', 'posts_per_page' = > $paged);
$success = new WP_Query($args);
$output = '';
$output. = sprintf("<table class='stores'>");
$output. = sprintf("<tr><th>File Name</th><th>Date added</th><th>Download</th></tr>");
while ($success - > have_posts()) {
$success - > the_post();
$output. = sprintf("<tr>");
$output. = sprintf("<td>%s</td>", get_the_title());
$output. = sprintf("<td>%s</td>", get_the_date());
$output. = sprintf("<td>%s</td>", wp_get_attachment_link());
$output. = sprintf("<tr>");
}
$output. = sprintf("</tr></table>");
$output. = sprintf("<p>%s</p>", next_posts_link('Next set'));
$output. = sprintf("<p>%s</p>", previous_posts_link('Prev set'));
return $output;
}
add_shortcode('display_stores', 'xma_display_stores');
答案 0 :(得分:1)
将$ paged和$ args的版本替换为:
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array( 'post_type' = > 'stores', 'orderby' = > 'title', 'order' = > 'asc', 'paged' => $paged );
posts_per_page确定要在页面上显示的帖子数量,而不是要显示的帖子页面。
另外将$ success-&gt; max_num_pages添加为next_posts_link的第二个参数,以便:
$output. = sprintf( "<p>%s</p>", next_posts_link( 'Next set', $success->max_num_pages ) );