WordPress/PAGE/2 404分页问题-怎么办?

时间:2015-11-24 作者:Giovanna Coppola

我遇到了/page/2 404分页问题,并试图找到解决方案。我读了一些建议,但还是没用。

工作:http://pandasnacozinha.com.br/bolos-doces-e-sobremesas/

不工作:http://pandasnacozinha.com.br/bolos-doces-e-sobremesas/page/2/

我已经想了好几个小时了。我知道WordPress假定“页面”是“bolos,doces e sobremesas”类别的帖子,因为我的永久链接结构是/%category%/%postname%/ 但我不知道如何修复它。

11 个回复
最合适的回答,由SO网友:Giovanna Coppola 整理而成

找到了解决方案!

安装此插件解决了以下问题:https://wordpress.org/plugins/category-pagination-fix/

我还必须在“设置”>“阅读”中进行更改,以每页显示不到10篇文章(我现在每页显示6篇文章,但10篇以下的文章都可以)。

希望它对你们大家都有用。:)

SO网友:Jeferson Padilha

我也有同样的问题,我注意到\'posts_per_page = 6\'\'Settings/Reading 在“选项阅读”WordPress参数中,我被设置为10。当我将所有内容都设置为相同的值(在我的情况下为6)时,所有内容都重新开始工作。

SO网友:themoonlikeme

在我的自定义链接中:/%类别%/%postname%/我遇到了一个问题:/news/page/2/

最后,这对我有用(添加到functions.php):

function remove_page_from_query_string($query_string)
{ 
    if ($query_string[\'name\'] == \'page\' && isset($query_string[\'page\'])) {
        unset($query_string[\'name\']);
        $query_string[\'paged\'] = $query_string[\'page\'];
    }      
    return $query_string;
}
add_filter(\'request\', \'remove_page_from_query_string\');

SO网友:kregus

尝试了几个小时,直到我在this article.

在您的functions.php 文件,添加

/**
 * Fix pagination on archive pages
 * After adding a rewrite rule, go to Settings > Permalinks and click Save to flush the rules cache
 */
function my_pagination_rewrite() {
    add_rewrite_rule(\'blog/page/?([0-9]{1,})/?$\', \'index.php?category_name=blog&paged=$matches[1]\', \'top\');
}
add_action(\'init\', \'my_pagination_rewrite\');
更换blog 在上面的代码中使用您的类别名称。

添加此代码后,请确保转到Settings > Permalinks 然后单击Save 刷新规则缓存,否则将不应用该规则。

希望这有帮助!

SO网友:LuckyDj

我发现改变permalink结构对我有用,看:

permalink在自定义结构中是这样的:/index.php/%year%/%monthnum%/%day%/%postname%/

然后,我将其更改为:Day and name(只需选择单选按钮),它将如下所示:/%year%/%monthnum%/%day%/%postname%/

我试过这个,效果很好!

SO网友:Mohammad1369 D

我的解决方案分为三步:

1-第一个:安装此插件:https://wordpress.org/plugins/category-pagination-fix/

2-然后:用这种结构制造你的cod

<?php $paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1; ?>
        <?php

        $q=new wp_Query(
            array(
                 "posts_per_page"=>10,
                 "post_type"=>"",
                 "meta_key"=>"",
                 "orderby"=>"meta_value_num",
                 "order"=>"asc",
                 "paged" => $paged,

            )
        );
 while($q->have_posts())

        {
            $q->the_post();    
            ?>
<li></li>
 <?php
        }
        wp_reset_postdata();

        ?>





<div class="pagination">
<?php
global $q;
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
        \'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
        \'format\' => \'?paged=%#%\',
        \'current\' => max( 1, get_query_var(\'paged\') ),
        \'total\' => $q->max_num_pages
) );
?>
</div>
进入wordpress设置>阅读>博客每页最多帖子数,然后输入数字1

SO网友:Espi

正如其他人所提到的那样。确保您的“posts\\u per\\u page=6”等于或小于Wordpress设置>阅读>博客页面最多显示设置。

我最近遇到了这个问题,问题是我完全从模板文件控制每页的帖子。如果最后一页没有足够的帖子,它将是404。

例如我将每页的帖子设置为9篇,但我有25篇帖子。第一页和第二页可以,但第三页可以是404页。我将WordPress设置为1,并将模板文件保留为9,现在它正按预期运行。

SO网友:Kahitarich

在我的例子中,使用Divi和PageNavi插件,我得到404的原因是页面模板(在我的例子中是归档)得到了paged 使用查询参数get_query_var( \'paged\' ), 相反,我所要做的就是使用如下全局变量:

<?php
/*
Template Name: Archives
*/
get_header(); ?>

<?php

    // $paged is a global variable provider by the theme?
    global $paged;

    $args = array(
        \'posts_per_page\' => 4, 
        \'post_type\' => \'axis\',
        \'paged\' => $paged,
    );

    $myposts = new WP_Query($args);
?>

<div div style="width: 50%; margin: 0 auto;">

    <?php while ( $myposts->have_posts() ) : $myposts->the_post(); ?>

            <div class="media-body">
                <?php the_content(); ?>
            </div>


    <?php endwhile; wp_reset_postdata(); ?>

    <?php wp_pagenavi( array( \'query\' => $myposts ) ); ?>

</div>

<?php get_sidebar(); ?>
<?php get_footer(); ?>
此代码已更正链接并已解析post-name/page/N 格式化程序帖子。permalink设置设置为“Post Name”,即。http://localhost/sample-post/

SO网友:Nicola

就我而言,我有一个循环:

if (is_category()) $args[\'posts_per_page\'] = 8;
在“设置”->“阅读”中,我每页有10篇博客和联合发布的帖子

我在设置->阅读中改为每页8篇帖子,现在404消失了,一切似乎都正常了。

我不知道为什么,但这可能对将来的人有所帮助

SO网友:Joel Christophel

以下是kregus\'s answer 一次修复所有类别:

/**
 * Fix pagination on archive pages
 */
function my_pagination_rewrite() {
    $categories = \'(\' . implode(\'|\', array_map(function($category){return $category->slug;}, get_categories())) . \')\';
    add_rewrite_rule($categories . \'/page/?([0-9]{1,})/?$\', \'index.php?category_name=$matches[1]&paged=$matches[2]\', \'top\');
}
add_action(\'init\', \'my_pagination_rewrite\');

SO网友:Angelo Carlos

我返回url时遇到错误404/page/2/.... 因此,我转到WordPress 404页面,在错误页面的顶部添加以下javascript:

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
   var getreurl = window.location.href;
   if(getreurl != ""){
     var res = getreurl.split("/?");
       if(res[1] != ""){
         var resd = "http://www.yourwebsite.com/list/?"+res[1];
         window.location = resd;
     }
 }
 </script>
当我返回404页面时,它包含URL,我解析URL并获取所需的URL字符串,然后重建一个新链接,然后重定向到新重建的链接。

相关推荐

Count posts for pagination

我正在为一个网站分页<;上一页(页码)下一页>很简单,已经完成。但是现在我需要添加一个选择器来直接转到页面(例如:转到第7页),要这样做,我需要知道有多少页面,为此我需要计算在查询中找到了多少帖子。问题是这个网站有太多的帖子(>13.000),查询所有帖子都会减慢页面加载速度,这就像。。。10秒后页面才能加载。显然,这是不可接受的。分页解决了这个问题,因为一次只加载50或100篇文章,但我无法将它们全部计算在内。我可以在不加载的情况下统计某个查询中的帖子吗?或者我可以通过其他方式获得页数吗