包括“在一页上查看所有内容”的分页

时间:2011-06-24 作者:maikunari

我正在使用下面的代码为我的帖子结果创建分页,它工作得很好,但是否可以在分页中添加“查看一页上的所有帖子”按钮?

这可能会覆盖分页代码,只在一个页面上显示所有帖子。

function numeric_pagination ($pageCount = 9, $query = null) {

if ($query == null) {
    global $wp_query;
    $query = $wp_query;
}

if ($query->max_num_pages <= 1) {
    return;
}

$pageStart = 1;
$paged = $query->query_vars[\'paged\'];

// set current page if on the first page
if ($paged == null) {
    $paged = 1;
}

// work out if page start is halfway through the current visible pages and if so     move it accordingly
if ($paged > floor($pageCount / 2)) {
    $pageStart = $paged - floor($pageCount / 2);
}

if ($pageStart < 1) {
    $pageStart = 1;
}

// make sure page start is 
if ($pageStart + $pageCount > $query->max_num_pages) {
    $pageCount = $query->max_num_pages - $pageStart;
}

?>
<div id="pagination">
<?php
if ($paged != 1) {
?>
<a href="<?php echo get_pagenum_link(1); ?>" class="numbered page-number-first">  <span>&lsaquo; <?php _e(\'Newest\', \'rhinoplasty\'); ?></span></a>
<?php
}
// first page is not visible...
if ($pageStart > 1) {
    //echo \'previous\';
}
for ($p = $pageStart; $p <= $pageStart + $pageCount; $p ++) {
    if ($p == $paged) {
?>
    <span class="numbered page-number-<?php echo $p; ?> current-numeric-page"><?    php echo $p; ?></span>
<?php } else { ?>
    <a href="<?php echo get_pagenum_link($p); ?>" class="numbered page-number-<?    php echo $p; ?>"><span><?php echo $p; ?></span></a>

<?php
    }
}
// last page is not visible
if ($pageStart + $pageCount < $query->max_num_pages) {
    //echo "last";
}
if ($paged != $query->max_num_pages) {
?>
    <a href="<?php echo get_pagenum_link($query->max_num_pages); ?>" class="numbered page-number-last"><span><?php _e(\'Oldest\', \'rhinoplasty\'); ?> &rsaquo;</span></a>
<?php } ?>

</div>

<?php }
我真的不知道该怎么做,任何建议都将不胜感激。如果可以更好地工作,那么更改为不同的分页代码也可以。

为了澄清我的问题,我想添加一个“查看一页上的所有帖子”功能,基本上覆盖了分页代码-这可以通过单击分页菜单右侧的“查看全部”链接来完成(4 5…最后一个下一个>>查看全部>)。

更新-我想差不多了:

我添加了以下内容:

<?php 
$Path=$_SERVER[\'REQUEST_URI\'];
$URI=\'http://sitename.com\'.$Path;
$nopage = add_query_arg( \'paged\', \'no\', $Path );
?>

<a href="<?php echo $nopage; ?>">View All</a>
这将使用sitename重新加载我的页面。com?paged=否,但它仍然显示分页-我不确定如何覆盖分页。

更新时间:

下面是我最后如何解决它的,以防这对其他人有帮助。

在上述代码之后和期末考试之前,我添加了:

if (isset($_GET[\'viewall\']))

{

function view_allposts( $query ) {

    $query->set( \'posts_per_page\', -1 );

}

add_action( \'pre_get_posts\', \'view_allposts\' );

}


if(!$_GET[\'viewall\']){ ?>

<a class="numbered" href="<?php  echo add_query_arg( array( \'viewall\' => "true" ), get_pagenum_link(1) ); ?>">Show All >></a>

<?php } ?>
工作完美!感谢您对Kaiser的帮助,尽管我使用了不同的解决方案,但我从您提供的链接中学到了很多。

3 个回复
最合适的回答,由SO网友:kaiser 整理而成

你可以使用add_query_arg() 和更改$paged 对于旧查询。

EDIT:

//  This should output \'http://example.com/?paged=no\'
add_query_arg( \'paged\', \'no\', bloginfo(\'url\') );
然后使用get_query_var() 修改输出。

SO网友:fuxia

滤器\'pre_get_posts\' 并设置nopaging 参数设置为true。

我已经为此编写了一个小教程:How To List All Posts Of An Archive, A Category Or A Search Result.

SO网友:Quimby Melton

我的公司刚刚发布了一个插件,它为出版商提供了在分页字符串中包含“单页”链接的选项:Page-Links Plus.

结束

相关推荐

Pagination with custom loop

我的问题可能是Pagination not working with custom loop, 但有一种不同。我使用自定义循环来显示flash游戏。我想按类别在游戏页面上分页。类别php:<?php if ($cat) { $cols = 2; $rows = 4; $paged = ((\'paged\')) ? get_query_var(\'paged\') : 1; $post_per_page = $cols * $rows; // -1 s