php – WordPress插件分页无法正常工作

我创建了一个使用内置函数paginate_links的函数.

但是分页不正常,因为URL写错了.

我想要的URL看起来像这个domain.com/properties/page/2/?foo=bar

输出的URL是domain.com/properties/?foo=bar/page/2/

这是我的代码

function paginate($max_num_pages) {
    global $wp_query, $wp_rewrite;
    $wp_query->query_vars['page'] > 1 ? $current = $wp_query->query_vars['page'] : $current = 1;
    $pagination = array(
        'base' => @add_query_arg('page','%#%'),
        'format'       => '',
        'total'        => $max_num_pages,
        'current'      => $current,
        'show_all'     => true,
        'end_size'     => 1,
        'mid_size'     => 2,
        'prev_next'    => True,
        'prev_text'    => __('« PrevIoUs'),
        'next_text'    => __('Next »'),
        'type'         => 'plain',
        'add_args'     => false,
        'add_fragment' => ''
    );

    if( $wp_rewrite->using_permalinks() ) 
        $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'page' );

    if( !empty($wp_query->query_vars['s']) ) 
        $pagination['add_args'] = array( 's' => get_query_var( 's' ) );

    echo paginate_links( $pagination );
}

解决方法:

这是最终为我工作的东西.

我必须将$wp_query-> query_vars更改为paged并删除检查我是否使用perma链接的行if($wp_rewrite-> using_permalinks())$pagination [‘base’] = user_trailingslashit(trailingslashit(remove_query_arg) (‘s’,get_pagenum_link(1))).’page /%#%/’,’paged’);

function paginate($max_num_pages) {
    global $wp_query, $wp_rewrite;
    $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
    $pagination = array(
        'base'  => @add_query_arg('paged','%#%'),
        'format'       => '',
        'total'        => $max_num_pages,
        'current'      => $current,
        'show_all'     => true,
        'end_size'     => 1,
        'mid_size'     => 2,
        'prev_next'    => True,
        'prev_text'    => __('« PrevIoUs'),
        'next_text'    => __('Next »'),
        'type'         => 'plain',
        'add_args'     => false,
        'add_fragment' => ''
    );

    //if ( $wp_rewrite->using_permalinks() ) $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
    if ( !empty($wp_query->query_vars['s']) ) $pagination['add_args'] = array( 's' => get_query_var( 's' ) );  
    echo paginate_links( $pagination );
}

相关文章

我们有时候在定制WORDPRESS主题的时候,由于菜单样式的要求我...
很多朋友在做wordpree主题制作的时候会经常遇到一个问题,那...
wordpress后台的模块很多,但并不是每个都经常用到。介绍几段...
从WordPress4.2版本开始,如果我们在MYSQL5.1版本数据中导出...
很多网友会遇到这样一个问题,就是WordPress网站上传图片、附...
对于经常要在文章中出现代码的IT相关博客,安装一个代码高亮...