我使用了分页功能
function sjb_pagination() {
if (is_singular())
return;
global $wp_query;
/** Stop execution if there's only 1 page */
if ($wp_query->max_num_pages <= 1)
return;
$paged = get_query_var('paged') ? absint(get_query_var('paged')) : 1;
$max = intval($wp_query->max_num_pages);
/** Add current page to the array */
if ($paged >= 1)
$links[] = $paged;
/** Add the pages around the current page to the array */
if ($paged >= 3) {
$links[] = $paged - 1;
$links[] = $paged - 2;
}
if (( $paged + 2 ) <= $max) {
$links[] = $paged + 2;
$links[] = $paged + 1;
}
echo '<div class="sjb-navigation"><ul>' . "\n";
/** Previous Post Link */
if (get_previous_posts_link())
printf('<li>%s</li>' . "\n", get_previous_posts_link());
/** Link to first page, plus ellipses if necessary */
if (!in_array(1, $links)) {
$class = 1 == $paged ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link(1)), '1');
if (!in_array(2, $links))
echo '<li>…</li>';
}
/** Link to current page, plus 2 pages in either direction if necessary */
sort($links);
foreach ((array) $links as $link) {
$class = $paged == $link ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($link)), $link);
}
/** Link to last page, plus ellipses if necessary */
if (!in_array($max, $links)) {
if (!in_array($max - 1, $links))
echo '<li>…</li>' . "\n";
$class = $paged == $max ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($max)), $max);
}
/** Next Post Link */
if (get_next_posts_link())
printf('<li>%s</li>' . "\n", get_next_posts_link());
echo '</ul></div>' . "\n";
}
我将此功能称为我的短代码功能。
function job_listing {
$paged = get_query_var('paged') ? absint(get_query_var('paged')) : 1;
$args = array(
'posts_per_page' => $a['posts'],
'post_type' => 'jobpost',
'jobpost_category' => $a['category'],
'jobpost_job_type' => $a['type'],
'jobpost_location' => $a['location'],
'paged' => $paged,
);
$search_result = query_posts($args);
get_simple_job_board_template('job-filters.php', array('per_page' => $a['posts'], 'order' => $a['order'], 'categories' => $a['category'], 'job_types' => $a['type'], 'atts' => $atts, 'location' => $a['location'], 'keywords' => $a['keywords']));
if (have_posts()):
get_simple_job_board_template('job-listings-start.php');
while (have_posts()): the_post();
get_simple_job_board_template_part('content', 'job-listing');
endwhile;
get_simple_job_board_template('job-listings-end.php');
else:
get_simple_job_board_template('content-no-jobs-found.php');
endif;
**sjb_pagination();**
$html = ob_get_clean();
wp_reset_query();
return $html;
}
这个分页功能用于短代码调用功能。现在的问题是分页只能正常工作我创建的一个页面。它不适用于静态主页和其他页面。有些地方给出了404错误或某个地方它渲染到所有导航的主页为什么会发生这种情况?请指导我,我必须在我的插件中添加这个分页功能。如果它显示这种行为,那么它对插件用户不利。 感谢