我的index.php上的分页404

时间:2016-03-30 作者:Riccardo Costantini

几天来,我一直在尝试如何修复wordpress网站索引的分页。分页在类别和其他归档文件上效果很好,但在我的索引上不起作用

点击页码有404。我发现链接指向domain.com?paged=4.Replacing ?paged=4 with ?page=4 the pagination work!

<?php wp_reset_query(); ?>
                    <?php 
$paged = (get_query_var(\'page\')) ? get_query_var(\'page\') : 1;
$args   =  array(
                    \'post_type\' => array(of_get_options( \'url_movie\', \'movie\') ),
                    \'showposts\' => get_option(\'posts_per_page \'),
                    \'order\' => \'DESC\',
                    \'paged\' => $paged

                ); 
            query_posts($args);
                while ( have_posts() ) : the_post(); ?>


<li class="item">
                <a class="poster" href="<?php the_permalink(); ?>" title="<?php if(show_info(\'name\', $post->ID ) == "N/A"){echo show_info(\'title\', $post->ID ); }else{echo show_info(\'name\', $post->ID );} ?>">
                <img src="<?php image_show("poster_path", $post->ID, "w185"); ?>" alt="<?php if(show_info(\'name\', $post->ID ) == "N/A"){echo show_info(\'title\', $post->ID ); }else{echo show_info(\'name\', $post->ID );} ?>" />              
                </a>
                <div class="info">
                <h3 class="name"><a href="<?php the_permalink(); ?>" title="<?php if(show_info(\'name\', $post->ID ) == "N/A"){echo show_info(\'title\', $post->ID ); }else{echo show_info(\'name\', $post->ID );} ?>"><?php if(show_info(\'name\', $post->ID ) == "N/A"){echo show_info(\'title\', $post->ID ); }else{echo show_info(\'name\', $post->ID );} ?></a></h3>
                <span class="genero"><?php $category = get_the_category($post->ID); echo $category[0]->cat_name; ?></span>
                </div> 
            </li>  
            <?php endwhile; ?>

            </ul>
            <div class="clear"></div>

          <?php  if(function_exists(\'wp_paginate\')) {
    wp_paginate();
}
else {
    pagenavi();
} ?> 

1 个回复
SO网友:kaiser

您不应该跑步的原因query_posts() 在这个答案中有完美的轮廓。长话短说:覆盖默认查询(由WP-core执行),并用仅与二次查询匹配的数据替换对此请求有效的所有内容。

功能get_query_var() 依靠全球$wp_query 通过您的query_posts() 呼叫这是此函数内部发生的情况:

$GLOBALS[\'wp_query\']->get( $var, $default );
wp_reset_query() 函数,是否重新同步$wp_query 具有$wp_the_query. 这就是它的核心:

$GLOBALS[\'wp_query\'] = $GLOBALS[\'wp_the_query\'];
更多关于如何的详细信息可以在这里找到answer.

Answer: 基本上,你正在使用WordPress所依赖的所有全局语言。由于插件需要依赖WP-core,所以您也可以使用它。