Wordpress分页 - 无法访问第二页

时间:2017-06-07 14:00:01

标签: php wordpress pagination

我在我的网站上使用WP Beginner分页(没有插件),但我无法访问第二页和其他页面。

<?php

$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;

 $custom_query_args = array(
        'post_type' => array( 'tutorials','post' ),
        'posts_per_page' => 2,
        'cat' => $cat_id,
 );

// Get current page and append to custom query parameters array
$custom_query_args['paged'] = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;

// Instantiate custom query
$custom_query = new WP_Query( $custom_query_args );

// Pagination fix
$temp_query = $wp_query;
$wp_query   = NULL;
$wp_query   = $custom_query;

// Output custom query loop
if ( $custom_query->have_posts() ) :
        while ( $custom_query->have_posts() ) :
                        $custom_query->the_post();

            echo '<article class="other-post col-xs-12 col-sm-12 col-md-3 col-lg-3">';
            echo '<div class="back-color">';
            echo '<h3>';
            echo the_post_thumbnail('post-thumbnail', array( 'class' => 'post-image' ));
            echo '<a href="'. get_permalink() .'" title="'. get_the_title() .'">';
            echo '<span><b>'. get_the_title() .'</b></span>';
            echo '</a>';
            echo '</h3>';
            echo '</div>';
            echo '</article>';

        endwhile;
endif;

// Reset postdata
wp_reset_postdata();

// Custom query loop pagination
wpbeginner_numeric_posts_nav();


// Reset main query object
$wp_query = NULL;
$wp_query = $temp_query;
?>

这是来自function.php的代码,但我认为这不是问题所在。 http://virtual-wizard.eu/function.txt

2 个答案:

答案 0 :(得分:1)

您在查询参数中缺少paged参数。

我也会替换页面查询,所以不要这样:

// Get current page and append to custom query parameters array
$custom_query_args['paged'] = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;

你有这个:

// Get current page and append to custom query parameters array
if ( get_query_var( 'paged' ) ) {
    $paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
    $paged = get_query_var( 'page' );
} else {
    $paged = 1;
}

然后将您的查询更改为:

$custom_query_args = array(
   'post_type' => array( 'tutorials','post' ),
   'posts_per_page' => 2,
   'cat' => $cat_id,
   'paged' => $paged,
);

我希望有所帮助。

答案 1 :(得分:0)

请尝试使用此代码。请务必仔细阅读,因为他们正在解释如何在WP网站中实现此功能。

http://www.kriesi.at/archives/how-to-build-a-wordpress-post-pagination-without-plugin

当你想要显示分页时,函数是在functions.php和特定页面内设置的,只需像pagination()那样调用函数;

在调用分页之前,还要检查分页的CSS部分和结构,以获得所需的效果。

Srecno!