4.41更新后,wordpress主题的“自定义分页”问题

时间:2016-09-01 03:06:34

标签: wordpress pagination

经过近一整天的研究,我发现有一个已知的WordPress错误会导致某些主题出现分页问题。它发生在升级到wp 4.4.1之后。我的恰好也是其中之一。有些人在尝试访问他们的分页的mysite.com/page/2时看到 404错误,但我只看到与page/1相同的内容。

我已尝试关注其他两篇帖子,建议我将这些剪辑添加到functions.php的底部:

add_filter(‘redirect_canonical’,’custom_disable_redirect_canonical’);
 function custom_disable_redirect_canonical($redirect_url){
      if (is_paged() && is_singular())
         $redirect_url = false; 
         return $redirect_url;
 }

add_action( 'parse_query', 'category_posts_per_page', 10, 1 );
function category_posts_per_page( $q_obj ) {
    if( is_category() )
    $q_obj->query_vars['posts_per_page'] = 1; // Change this example value
}

都没有奏效。这是我的代码。希望熟悉这个已知问题的其他人可以提供帮助。

/*---------------------------------
    A custom pagination function
------------------------------------*/

if ( ! function_exists( 'krown_pagination' ) ) {

    function krown_pagination( $query = null, $paginated = false, $range = 2, $echo = true ) {  

        if ( $query == null ) {
            global $wp_query;
            $query = $wp_query;
        }

        $page = $query->query_vars['paged'];
        $pages = $query->max_num_pages;

        if ( $page == 0 ) {
            $page = 1;
        }

        $html = '';

        if( $pages > 1 ) {

            $html .= '<nav class="pagination">';

            if ( ! $paginated ) {

                if ( $page + 1 <= $pages ) {
                    $html .= '<a class="prev" href="' . get_pagenum_link( $page + 1 ) . '">' . '<i class="krown-icon-arrow_left"></i>' . __( 'Older Post' ,'krown' ) . '</a>';
                }

                if ( $page - 1 >= 1 ) {
                    $html .= '<a class="next" href="' . get_pagenum_link( $page - 1 ) . '">' . __( 'Newer Post' ,'krown' ) . '<i class="krown-icon-arrow_right"></i></a>';
                }

            } else {

                for ( $i = 1; $i <= $pages; $i++ ) {

                    if ( $i == 1 || $i == $pages || $i == $page || ( $i >= $page - $range && $i <= $page + $range ) ) {
                        $html .= '<a href="' . get_pagenum_link( $i ) . '"' . ( $page == $i ? ' class="active"' : '' ) . '>' . $i . '</a>';
                    } else if ( ( $i != 1 && $i == $page - $range - 1 ) || ( $i != $page && $i == $page + $range + 1 ) ) {
                        $html .= '<a class="none">...</a>';
                    }

                }

            }

            $html .= '</nav>';

        }

        if ( $echo ) {
            echo $html;
        } else {
            return $html;
        }

    }

}

提前致谢。

0 个答案:

没有答案