使用$PAGE重定向/第/2页到第1页

时间:2014-01-12 作者:user156

我已经为我的帖子(single.php)设置了一个带有分页的自定义查询,顺便说一下,它与默认的permalink结构配合得很好。

领域com/p=ID和;分页=2

如果我将永久链接切换到/%postname%/页面/2/将重定向到第一页。

<?php 
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args=array( \'connected_type\'=> \'posts_to_posts\', \'posts_per_page\' => 3, \'paged\' => $paged, \'order\' => \'ASC\', \'connected_items\' => get_queried_object() );

$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query( $args );
if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>

    <a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>

<?php endwhile; endif; $wp_query = null; $wp_query = $temp; wp_reset_query(); ?>
让我困惑的是,ir使用的是默认永久链接,为什么不使用“漂亮”链接?

主页分页工作正常,只是帖子页面不知怎么搞砸了。谁能给我指出正确的方向吗?我应该在哪里查找错误?

我已经停用了所有插件,删除了htaccess并创建了一个新插件,但仍然一无所获。

3 个回复
最合适的回答,由SO网友:user156 整理而成

如果有人遇到此问题,可以将其添加到函数中。PHP代码

add_filter(\'redirect_canonical\',\'pif_disable_redirect_canonical\');

function pif_disable_redirect_canonical($redirect_url) {
    if (is_singular()) $redirect_url = false;
return $redirect_url;
}

Source

SO网友:Robin Westerlundh

如果这不是主回路。aka(博客页面)Wordpress将/2解释为子页面名称,而不是分页查询变量。

如果要在页面上使用此功能,需要注册一个自定义查询\\u varhttp://codex.wordpress.org/WordPress_Query_Vars 并以structure/page/paging/2为例。

SO网友:Oleg Apanovich

这是一个非常古老的自定义post类型分页问题。在上有未解决的问题wordpress core development tracker tracker中该图的最后一个解决方法是下面的。这对我很有用。

/**
 * Fix pagination issue on a custom post type
 *
 * @link https://core.trac.wordpress.org/ticket/15551
 *
 * @param object $request WP_Query
 *
 * @return object
 */
function child_martfury_fix_request_redirect( $request ) {
    if ( isset( $request->query_vars[\'post_type\'] )
         && \'custom_type\' === $request->query_vars[\'post_type\']
         && true === $request->is_singular
         && - 1 == $request->current_post
         && true === $request->is_paged
    ) {
        add_filter( \'redirect_canonical\', \'__return_false\' );
    }

    return $request;
}
add_action( \'parse_query\', \'child_martfury_fix_request_redirect\' );

结束