定制查询和重写的URL分页404

时间:2015-07-09 作者:Codarz360

我有一个自定义的搜索结果页面,其中的url“/mysearch/location/SUBMITTED DATA/”非常好用。

然而,我现在正在尝试在该页面上进行分页,因此URL将如下所示-“/mysearch/location/SUBMITTED DATA/page/2/”,但当我访问该URL时,我似乎收到的只是“404 page not found”。

我当前的重写使用以下代码执行:

function add_search_store_query_var($vars) {
   $vars[] = \'location\';
   return $vars;
}
add_filter( \'query_vars\', \'add_search_store_query_var\');

function add_search_store_rewrite_rule() {
    add_rewrite_rule(\'mysearch/([^/]+)/([^/]+)$\', \'index.php?page_id=200&location=$matches[1]\', \'top\');
}
add_action(\'init\', \'add_search_store_rewrite_rule\');
以下是我当前分页链接的生成方式:

    $total_query    =   "SELECT COUNT(1) FROM (${query}) AS combined_table";
    $total          =   $wpdb->get_var( $total_query );
    $items_per_page =   1;
    $page           =   get_query_var( \'paged\' ) > 1 ? get_query_var(\'paged\') : 1;
    $offset         =   ( $page * $items_per_page ) - $items_per_page;
    $searchResults  =   $wpdb->get_results( $query . " HAVING distance < ".$distance." ORDER BY distance LIMIT ${offset}, ${items_per_page}" );

    $paginationOptions = array(
        \'base\'          => @add_query_arg( \'paged\', \'%#%\' ),
        \'format\'        => \'\',
        \'prev_text\'     => __(\'&laquo;\'),
        \'next_text\'     => __(\'&raquo;\'),
        \'total\'         => ceil($total / $items_per_page),
        \'current\'       => $page,
    );

     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\' ) );
如果有人对我如何解决这个问题有任何建议或想法,我们将不胜感激。

谢谢Codarz360

1 个回复
SO网友:Codarz360

我终于找到了解决问题的方法。

我在rewrite\\u rules函数中添加了以下内容:

add_rewrite_rule(\'^mysearch/location/([^/]+)/page/([0-9]{1,})/?$\',\'index.php?page_id=200&location=$matches[1]&paged=$matches[2]\',\'top\');
所以现在我的URL完全符合我的要求:/mysearch/location/SUBMITTED-INFO/page/WHATEVER

结束

相关推荐

Pagination - not progressing

好的,我添加了以下分页标记:<?php next_posts_link( \'Older posts\' ); ?> <?php previous_posts_link( \'Newer posts\' ); ?> 我可以在地址栏中看到查询字符串正在正确更改e、 g.localhost:8888/wordpress/?页码=3但是,页面结果保持不变(显示最初的前10个结果)。我这里出了什么问题?编辑:下面是代码(没有任何HTML):<!--Latest Po