Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.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
Php 分页不';当在WordPress中设置了偏移量时,将无法工作_Php_Wordpress_Pagination_Wordpress Theming - Fatal编程技术网

Php 分页不';当在WordPress中设置了偏移量时,将无法工作

Php 分页不';当在WordPress中设置了偏移量时,将无法工作,php,wordpress,pagination,wordpress-theming,Php,Wordpress,Pagination,Wordpress Theming,有人能解释一下为什么我的分页不起作用吗? 请看下面的代码 <?php $args = array( 'post_type' => 'post', 'offset' => '1', 'page' => $page, 'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1), ); query_posts($args); $i = 1; if (have_pos

有人能解释一下为什么我的分页不起作用吗?
请看下面的代码

<?php

$args = array(
    'post_type' => 'post',
    'offset' => '1',
    'page' => $page,
    'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1),
);

query_posts($args);
$i = 1;
if (have_posts()) :
    while (have_posts()) : the_post(); 

?>

当我注释或删除
'offset'=>'1'
分页有效。
有没有其他的抵消方法

任何帮助都将不胜感激。
谢谢。

这篇文章解释了如何在不破坏WordPress内置分页的情况下在查询中使用WordPress的
offset

您需要编写一些额外的代码来手动处理分页;您需要检测循环是否有其他页面,然后动态计算当前页面的适当偏移量

您将使用WordPress内置的
pre\u get\u posts
hook。请参阅。



这对我来说很有用。

你能不能包括查询帖子功能以及从一个数组中获取帖子?很难说发生了什么。这些是WordPress函数,你可以在以下链接中看到它们:查询帖子()获取帖子()请阅读本文档,它描述了案例中参数
$args
的签名。分页是一个众所周知的问题。请添加评论并解释您的答案。
<?php
    $current_page = get_query_var('paged');
    $current_page = max( 1, $current_page );
    $per_page = 2;
    $offset_start = 1;
    $offset = ( $current_page - 1 ) * $per_page + $offset_start;

    $args = array(  
        'post_type' => 'podcast',
        'post_status' => 'publish',
        'posts_per_page' => $per_page,
        'offset' => $offset,
        'paged' => $current_page,
    );
    $query = new WP_Query( $args );
    $total_rows = max( 0, $query->found_posts - $offset_start );
    $total_pages = ceil( $total_rows / $per_page );
?>

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

    <?php endwhile; ?>
    <?php
        echo paginate_links(array(
            'total'   => $total_pages,
            'current' => $current_page,
            'next_text'=> "Next",
            'prev_text'=> "Prev",
        ));
    ?>
<?php endif; wp_reset_query(); ?>