I used the pagination function
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>' . "
";
/** Previous Post Link */
if (get_previous_posts_link())
printf('<li>%s</li>' . "
", 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>' . "
", $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>' . "
", $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>' . "
";
$class = $paged == $max ? ' class="active"' : '';
printf('<li%s><a href="%s">%s</a></li>' . "
", $class, esc_url(get_pagenum_link($max)), $max);
}
/** Next Post Link */
if (get_next_posts_link())
printf('<li>%s</li>' . "
", get_next_posts_link());
echo '</ul></div>' . "
";
}
And i am calling this function into my shortcode function.
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;
}
This pagination function is used in shortcode calling function.Now the problem is that pagination working correctly only one page i have created.It is not working for static Home page and other pages.Some where it is giving 404 error or somewhere it renders to home page on all navigation Why is that happening ? Please guide me i have to add this pagination feature in my plugin .If it show this kind of behaviour so it is not good for plugin users. Thanks