使用WP_Query自定义主页分页

时间:2013-08-14 作者:Justice Is Cheap

我遇到了一个情况,我所做的所有搜索都没有让我取得成功。我有一个带有自定义wp\\u查询的静态主页模板,如下所示(在自定义页面上的另一个站点上工作--此外,出于测试目的,我将posts\\u per\\u page设置为1,并且在仪表板中将posts设置为1):

<?php 
    global $paged;
    global $bday_parties;
    $temp = $bday_parties; 
    $bday_parties = null; 

    $bday_parties = new WP_Query(); 
    $bday_parties->query(\'category_name=party-themes&posts_per_page=1&post_type=page\'.\'&paged=\'.$paged);
    while ($bday_parties->have_posts()) : $bday_parties->the_post(); 
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <div class="article-border">
        <?php get_template_part(\'partials/loop-homeparties\'); ?>
    </div>      
</article>

<?php endwhile; ?>
<div class="pagination">
    <?php wp_pagenavi( array( \'query\' => $bday_parties ) ); ?>
</div>
<?php 
    $bday_parties = null; 
    $bday_parties = $temp; 
?>
partials/loop homeparties模板从页面上的自定义元框中提取元值,该内容构成主页(以及归档页面)上的“帖子”。

使用上面的查询,我得到主页上的内容,我得到导航链接,但当我单击(链接显示下一页的URL)时,主页只会重新加载。我已经为此工作了几天了,该网站需要尽快推出(这让我很为难)。既然它在另一个页面上成功运行,我不明白为什么它在这里对我不起作用。任何帮助都将不胜感激。

TIA!

1 个回复
SO网友:Charles Clarkson

既然它在另一个页面上成功运行,我不明白为什么它在这里对我不起作用。

问题是其他页面不是静态首页。当分页静态页面时,WordPress使用page 变量,而不是paged 查询变量。页面使用<!--nextpage--> 分页。从WP_Query page:

分页说明:使用get\\u query\\u var(\'page\');如果希望查询在已设置为静态首页的页面模板中工作。查询变量“page”还保存包含<!--nextpage--> 文章内容中的Quicktag。

在静态首页上显示当前页面的帖子:

$paged = ( get_query_var(\'page\') ) ? get_query_var(\'page\') : 1;
$query = new WP_Query( array( \'paged\' => $paged ) );

在代码中,这是:

global $paged;
global $bday_parties;
$temp = $bday_parties;
$bday_parties = null;

$bday_parties = new WP_Query();
$bday_parties->query(\'category_name=party-themes&posts_per_page=1&post_type=page\'.\'&paged=\'.$paged);
while ($bday_parties->have_posts()) : $bday_parties->the_post();
可以重写为:

global $bday_parties;

$temp = $bday_parties;
$bday_parties = null;

$bday_parties = new WP_Query();

$page_number = ( get_query_var(\'page\') ) ? get_query_var(\'page\') : 1;

$bday_parties->query( \'category_name=party-themes&posts_per_page=1&post_type=page&page=\' . $page_number );

结束

相关推荐

Pagination for a category

嗨,我有一个页面显示20个特定类别的特色图像和信息,我希望能够有分页,这样我就可以有多个类别的页面。我该怎么做?我似乎无法让它工作。任何帮助都将不胜感激谢谢<?php get_header(); ?> <div class=\"modus-grid\"> <?php query_posts(array(\'category__in\' => array(5), \'posts_per_page\' => 20)); ?>