簡體   English   中英

Wordpress PageNavi插件不適用於category.php

[英]Wordpress PageNavi Plugin Doesn't Work on category.php

我有一個問題, PageNavi顯示126頁(126個帖子 - 這部分幾乎是正確的),但不是分解10(期望13頁)它顯示每個頁面中的所有帖子。 如果我改變'numberposts' => 5它會顯示相同的5。

相關代碼部分:

<?php wp_pagenavi(); ?>
<?php
$args = array( 'category' => 7, 'numberposts' => -1);
$allpost = get_posts( $args );
    foreach($allpost as $post) : setup_postdata($post); ?>
    <p class="datelist"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endforeach; ?>
<?php wp_pagenavi(); ?>

我似乎無法弄清楚出了什么問題。

更新(完整代碼):

<?php
get_header();
?>
<div id="container">
    <div id="content" role="main">
        <h1>something</h1>
        <?php
        $args = array( 'category' => 7, 'numberposts' => -1);
        $allpost = get_posts( $args );
        foreach($allpost as $post) : setup_postdata($post); ?>
        <p class="datelist"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
        <?php endforeach; ?>
</div>
</div>
<?php get_footer(); ?>

工作代碼:

<?php get_header(); ?>
    <div id="container">
            <div id="content" role="main">
            <h1>something</h1>
<?php
global $paged;
if (get_query_var( 'paged' ))
    $my_page = get_query_var( 'paged' );
else {
    if( get_query_var( 'page' ) )
        $my_page = get_query_var( 'page' );
    else
        $my_page = 1;
    set_query_var( 'paged', $my_page );
    $paged = $my_page;
}

$args = array(
    'cat=7',
    'paged' => $my_page,
    'posts_per_page' => 10
);
$my_query = new WP_Query( $args );
while ($my_query->have_posts()) : $my_query->the_post();?>
    <p class="datelist"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile;
wp_pagenavi( array( 'query' => $my_query ) );
wp_reset_query();
?>
        </div>
    </div>
<?php get_footer(); ?>

當您使用get_posts您正在進行自己的查詢,而不是使用WordPress生成的默認查詢變量。 PageNavi插件無法在自定義循環中開箱即用。

正如rbaier4指出的 ,你必須使用paged變量。 注意不要將默認循環與自定義內容混合,並在完成后重置變量。

global $paged;
if (get_query_var( 'paged' ))
    $my_page = get_query_var( 'paged' );
else {
    if( get_query_var( 'page' ) )
        $my_page = get_query_var( 'page' );
    else
        $my_page = 1;
    set_query_var( 'paged', $my_page );
    $paged = $my_page;
}

// default loop here, if applicable, followed by wp_reset_query();

$args = array(
    // other query params here,
    'paged' => $my_page
);

$my_query = new WP_Query( $args );

// custom loop code

wp_pagenavi( array( 'query' => $my_query ) );
wp_reset_query();

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM