Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress分页不工作_Wordpress_Pagination - Fatal编程技术网

Wordpress分页不工作

Wordpress分页不工作,wordpress,pagination,Wordpress,Pagination,我尝试了多种解决方案,但都不起作用 当我转到/page/2时,它不起作用 我正在我的主题的index.php中执行一个自定义查询 if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } elseif ( get_query_var('page') ) { $paged = get_query_var('page'); } else { $paged = 1; } $args = array(

我尝试了多种解决方案,但都不起作用

当我转到/page/2时,它不起作用

我正在我的主题的index.php中执行一个自定义查询

if ( get_query_var('paged') ) {
    $paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
    $paged = get_query_var('page');
} else {
    $paged = 1;
}

$args = array(
    'post_type' => array('post', 'music', 'videos'),
    'post_status' => 'publish',
    //'meta_key' => 'featured',
    //'meta_value' => '1',
    'posts_per_page' => 10,
    'orderby'=>'date',
    'order'=>'DESC',
    'paged' => $paged
);

query_posts($args);
以下是我的网站链接:

此页面不工作(404)-(格式为-mywebsite/page/2/)


刚刚意识到第2页可以正常工作-(格式为-mywebsite.com/?page=2)

我有时也很难让分页正常工作。尝试使用下面的查询,看看是否有帮助。我只添加了一行代码,并将您的查询更改为不使用
$args
变量

<?php

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

query_posts( array(
    'post_type' => array(
        'post',
        'music',
        'videos',
    ),
    'post_status' => 'publish',,
    'posts_per_page' => 10,
    'orderby'=>'date',
    'order'=>'DESC',
    'paged' => $paged )
);

if (have_posts()) : while (have_posts()) : the_post();

?> 

    // Display your content here    

    <?php the_title ?>

    <?php the_content(); ?>

<?php endwhile; endif; ?>

//在此处显示您的内容

我也遇到了同样的问题,这为我解决了所有问题。这使我能够使用非常永久的链接对index.php和page.php进行分页

HTML/PHP:

<?php
    //Fix homepage pagination
    if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } else if ( get_query_var('page') ) {$paged = get_query_var('page'); } else {$paged = 1; }

    $temp = $wp_query;  // re-sets query
    $wp_query = null;   // re-sets query
    $args = array( 'post_type' => array('post', 'music', 'videos'), 'orderby'=>'date', 'order'=>'DESC', 'posts_per_page' => 10, 'paged' => $paged);
    $wp_query = new WP_Query();
    $wp_query->query( $args );
    while ($wp_query->have_posts()) : $wp_query->the_post(); 
?>

<!--your loop stuff here -->

<?php endwhile; ?>
<nav>
   <?php paginate(); ?>
   $wp_query = null;
   $wp_query = $temp; // Reset
</nav>
这最初是因为我稍微修改了它,以便在主页上进行分页

这同样可以做几件事。它为你的页面分页,每个页面都有自己的链接(我觉得这很好),并且它还重新写入URL以允许非常长的链接。如果您检查该链接,则在部分内容中使用变量“s”代替“paged”。我用“paged”替换了“s”,我这边的一切都很好

分页的可选样式

ul.page-numbers {
    margin: 20px 0 10px;
    width: 100%;
    padding: 0;
    font-size: 12px;
    line-height: normal;
    clear: both;
    float: left;
}

ul.page-numbers li {
       float: left;
    }

ul.page-numbers a,
ul.page-numbers span {
    border-radius: 3px;
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    background: -webkit-gradient(linear, left top, left bottom, from(#E4E3E3), to(#FFFFFF));
    background: -moz-linear-gradient(top,  #E4E3E3,  #FFFFFF);
    filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#E4E3E3', endColorstr='#FFFFFF');
    padding: 3px 4px 2px 4px; 
    margin: 2px;
    text-decoration: none;
    border: 1px solid #ccc;
    color: #666;
}

ul.page-numbers a:hover,
ul.page-numbers span.current {  
    border: 1px solid #666;
    color: #444;
}
编辑 我后来意识到,在单击其中一个页面选项卡后,主页分页将中断。我通过替换条件语句并将其放在适当的位置来解决这个问题。我也更新了上面的代码

$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 'page', get_pagenum_link( 1 ) ) ) . '?page=%#%/', 'paged' );

我已经为这个问题挣扎了一段时间,结果发现我们的WordPress没有为我设置一个必填字段,
max\u num\u pages

所以我在循环中设置了这个变量。这是我的示例代码

$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array('post_type' => 'cpt', 'paged'=>$paged, 'posts_per_page' => 3);
$loop = new WP_Query($args);
$GLOBALS['wp_query']->max_num_pages = $loop->max_num_pages; // This is the line that did the magic for me.
经过进一步阅读,我发现了这一点

  • 在single.php、singular.php和其他单视图模板上:
    (int)$page
    是文章的页面,如查询变量页面所指定:
    get_query_var('page')
  • 在所有种类的archive.php和类似的archive/post类型列表视图模板上:
    (int)$paged
    是全局变量,包含帖子列表的页码(如在归档中)

  • 这意味着,如果您使用的是页面模板(这是一个单视图模板)并且正在使用循环,则需要设置此变量。

    这里有几件事,请不要更改主页或任何存档页面上自定义查询的主查询。分页总是有问题的

    此外,切勿使用创建自定义查询。我的重点,就像《永不》

    注意:此功能不适用于插件或主题。正如后面解释的,有更好、更高性能的选项来更改主查询。query_posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为查询的新实例来修改页面的主查询。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)

    如果需要更改主页或任何存档页面的行为,请在执行主查询之前使用更改/修改主查询。这是更改主查询的正确方法。通过在执行前更改主查询,分页将不会有问题


    pre_get_posts
    可以与条件标记结合使用,以特定页面为目标。请查看为示例提供的链接

    wordpress.se会关注这个问题,我想我尝试了多种解决方案,但都不起作用。wordpress.stackexchange.com是这样一个网站,但专门针对wordpress问题。他们除了wordpress之外什么都不做,所以如果你在这里没有得到足够的答案,就试试那里。这里有一个关于查询帖子和分页的很好的阅读:你有超过10篇帖子吗?你包括页面导航链接吗?是的,我有10多篇文章,我包括页面导航链接。我已经在我的网站上添加了链接,这可能会有帮助吗?不幸的是,网站链接没有真正的帮助,因为我们看不到PHP代码。尝试更新你的永久链接。只需进入Permalinks并重新保存即可。您正在使用WP PageNavi插件吗?看起来你的页面链接来自该插件。尝试重新保存永久链接,但也不起作用。是的,使用wp pagenavi+1真棒!!!!!!这是完美的答案!它在WP 3.5+上完美地为我工作。谢谢你!
    $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
    $args = array('post_type' => 'cpt', 'paged'=>$paged, 'posts_per_page' => 3);
    $loop = new WP_Query($args);
    $GLOBALS['wp_query']->max_num_pages = $loop->max_num_pages; // This is the line that did the magic for me.