wordpress分页,带有一个偏移量,在末尾留下一个空白页

wordpress分页,带有一个偏移量,在末尾留下一个空白页,wordpress,pagination,Wordpress,Pagination,在我的管理中,我有12篇贴有“努力”标签的帖子,尽管还有很多其他帖子 最近的3篇贴有“努力”标签的帖子出现在主页上,其余的则出现在一个页面上,标题毫不奇怪地是“努力” 在这一页上,我需要分页,每页5篇文章,但alos将其抵消了3篇 在一篇似乎再也找不到的博客文章中,有人建议: $temp = $wp_query; $number_of_posts_per_page = 5; $paged = (get_query_var('paged')) ? get_query_var('paged') :

在我的管理中,我有12篇贴有“努力”标签的帖子,尽管还有很多其他帖子

最近的3篇贴有“努力”标签的帖子出现在主页上,其余的则出现在一个页面上,标题毫不奇怪地是“努力”

在这一页上,我需要分页,每页5篇文章,但alos将其抵消了3篇

在一篇似乎再也找不到的博客文章中,有人建议:

$temp = $wp_query;

$number_of_posts_per_page = 5;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$number_of_posts_past = $number_of_posts_per_page * ($paged - 1);
$off = 3 + (($paged > 1) ? $number_of_posts_past : 0);

wp_reset_query();
wp_reset_postdata();

$wp_query = new WP_Query('category_name=efforts&posts_per_page='.$number_of_posts_per_page.'&offset='.$off);
这很好,只是分页的页面太多,最后一页是空白的

为什么“以前的条目”链接会出现在第2页,并将您带到空白页

以下是完整的代码供参考:

<?php
global $options;
foreach ($options as $value) {
    if (get_settings( $value['id'] ) === FALSE) { 
        $$value['id'] = stripslashes( $value['std'] ); 
    } else { 
        $$value['id'] = stripslashes( get_settings( $value['id'] ) ); 
    } 
}
?>
<?php get_header(); ?>

<?php /* Enables two or three columns */
if ($et_threecolumn_disable == "false") { ?> <?php include(TEMPLATEPATH."/sidebar.php");?><?php } ?>

<div class="content <?php if ($et_threecolumn_disable == "false") { ?> <?php echo $et_columnorder; ?> <?php } else { ?> content-two-column<?php echo $et_columnorder; ?> <?php } ?>">
<?php
$temp = $wp_query;

$number_of_posts_per_page = 5;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$number_of_posts_past = $number_of_posts_per_page * ($paged - 1);
$off = 3 + (($paged > 1) ? $number_of_posts_past : 0);

wp_reset_query();
wp_reset_postdata();

$wp_query = new WP_Query('category_name=efforts&posts_per_page='.$number_of_posts_per_page.'&offset='.$off);



if (have_posts()) : while (have_posts()) : the_post();
    $video = get_post_custom_values('YT_video_id');
?>

<div class="post" id="post-<?php the_ID(); ?>">
    <h1><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h1>
    <h2><?php the_time('F jS, Y') ?> | <?php the_category(', ') ?> | <?php comments_popup_link('0 Comments', '1 Comment', '% Comments'); ?></h2>

    <div class="entry">
        <?php the_content('Read More'); ?>

        <iframe id="player" type="text/html" width="600" height="355" src="http://www.youtube.com/embed/<?php echo $video[0] ?>" frameborder="0"></iframe>

        <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
    </div>

    <?php if (function_exists('the_tags')) { the_tags('<p class="postmetadata">Tags: ', ', ', '</p>'); } ?>
</div>

<?php endwhile; endif; ?>


<div class="navigation">
    <div class="alignleft"><?php next_posts_link('&larr; Previous Entries') ?></div>
    <div class="alignright"><?php previous_posts_link('Next Entries &rarr;') ?></div>
</div>
<?php wp_reset_query(); $wp_query = null; $wp_query = $temp;?>

</div>


<?php include(TEMPLATEPATH."/primary-sidebar.php");?>

<?php get_footer(); ?>  

我做了一些测试

$temp = $wp_query;

$number_of_posts_per_page = 5;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$number_of_posts_past = $number_of_posts_per_page * ($paged - 1);
$off = 3 + (($paged > 1) ? $number_of_posts_past : 0);

wp_reset_query();
wp_reset_postdata();

$wp_query = new WP_Query('category_name=efforts&posts_per_page='.$number_of_posts_per_page.'&offset='.$off);

$wp_query->found_posts; // 12
所以found_posts似乎忽略了偏移量和每页的posts_。 根据法典,最大页数是按每页$found\u posts/$posts\u计算出来的,总共有3页

我需要计算我自己的max_页面,以提供给分页链接

$temp = $wp_query;

$number_of_posts_per_page = 5;
$initial_offset = 3;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$number_of_posts_past = $number_of_posts_per_page * ($paged - 1);
$off = $initial_offset + (($paged > 1) ? $number_of_posts_past : 0);

wp_reset_query();
wp_reset_postdata();

$wp_query = new WP_Query('category_name=efforts&posts_per_page='.$number_of_posts_per_page.'&offset='.$off);

$max_pages = ceil(($wp_query->found_posts - $initial_offset) / $number_of_posts_per_page);

// snipped a bunch of post related code that worked fine

<div class="navigation">
    <div class="alignleft"><?php next_posts_link('&larr; Previous Entries', $max_pages) ?></div>
    <div class="alignright"><?php previous_posts_link('Next Entries &rarr;', $max_pages) ?></div>
</div>
$temp=$wp\u查询;
$number\u每页的\u帖子数量=5;
$initial_offset=3;
$paged=(获取查询变量('paged'))?获取查询变量('paged'):1;
$number_of_posts_pass=$number_of_posts_每页*($paged-1);
$off=$initial\u offset+($paged>1)?$number\u posts\u过去:0);
wp_reset_query();
wp_reset_postdata();
$wp_query=新的wp_查询('category_name=每_页的工作量和帖子数='。$number_每_页的帖子数'。&offset='。$off);
$max_pages=ceil($wp_query->found_posts-$initial_offset)/$number_of_posts_每页);
//剪掉了一堆与帖子相关的代码,效果很好
我运行了一些测试

$temp = $wp_query;

$number_of_posts_per_page = 5;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$number_of_posts_past = $number_of_posts_per_page * ($paged - 1);
$off = 3 + (($paged > 1) ? $number_of_posts_past : 0);

wp_reset_query();
wp_reset_postdata();

$wp_query = new WP_Query('category_name=efforts&posts_per_page='.$number_of_posts_per_page.'&offset='.$off);

$wp_query->found_posts; // 12
所以found_posts似乎忽略了偏移量和每页的posts_。 根据法典,最大页数是按每页$found\u posts/$posts\u计算出来的,总共有3页

我需要计算我自己的max_页面,以提供给分页链接

$temp = $wp_query;

$number_of_posts_per_page = 5;
$initial_offset = 3;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$number_of_posts_past = $number_of_posts_per_page * ($paged - 1);
$off = $initial_offset + (($paged > 1) ? $number_of_posts_past : 0);

wp_reset_query();
wp_reset_postdata();

$wp_query = new WP_Query('category_name=efforts&posts_per_page='.$number_of_posts_per_page.'&offset='.$off);

$max_pages = ceil(($wp_query->found_posts - $initial_offset) / $number_of_posts_per_page);

// snipped a bunch of post related code that worked fine

<div class="navigation">
    <div class="alignleft"><?php next_posts_link('&larr; Previous Entries', $max_pages) ?></div>
    <div class="alignright"><?php previous_posts_link('Next Entries &rarr;', $max_pages) ?></div>
</div>
$temp=$wp\u查询;
$number\u每页的\u帖子数量=5;
$initial_offset=3;
$paged=(获取查询变量('paged'))?获取查询变量('paged'):1;
$number_of_posts_pass=$number_of_posts_每页*($paged-1);
$off=$initial\u offset+($paged>1)?$number\u posts\u过去:0);
wp_reset_query();
wp_reset_postdata();
$wp_query=新的wp_查询('category_name=每_页的工作量和帖子数='。$number_每_页的帖子数'。&offset='。$off);
$max_pages=ceil($wp_query->found_posts-$initial_offset)/$number_of_posts_每页);
//剪掉了一堆与帖子相关的代码,效果很好

如果您想了解有关此问题解决方案的更多信息,请访问官方WordPress Codex:如果您想了解有关此问题解决方案的更多信息,请访问官方WordPress Codex: