WordPress分页在所有页面上都无法正常运行

时间:2015-11-27 07:05:45

标签: php wordpress pagination

我使用了分页功能

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错误或某个地方它渲染到所有导航的主页为什么会发生这种情况?请指导我,我必须在我的插件中添加这个分页功能。如果它显示这种行为,那么它对插件用户不利。 感谢

0 个答案:

没有答案