1

次のコードがあります。

$attr = array(
        'align' => 'left',
        'class' => 'thumbnail imageRight',
        'width' => 350,
        'height' => 350
);

$post_query =  array ( 'post_type' => 'post' );
$posts = new WP_Query ( $post_query );

if($posts->have_posts()){
    while($posts->have_posts()){
        $posts->the_post();
        ?>
        <div class="post">
            <?php the_post_thumbnail('medium', $attr); ?>
            <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
            <p><?php the_excerpt(); ?></p>
        </div>
        <?php
    }

    next_posts_link('&laquo; Older Entries');
    previous_posts_link('Newer Entries &raquo;');
}

ここで実際に見ることができます。このページには現在、データベース内の 21 件の投稿のうち 3 件が表示されています。ただし、ページネーションはありません。

理由を教えてもらえますか?

4

2 に答える 2

0
<?php
global $wp_query;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(  
            'post_type' => 'post', //Post type
            'posts_per_page' => 3, //How many post u want to display per page
            'paged' => $paged                      
            );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
    $the_query->the_post();

    $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
?>
    <img src="<?=$url?>" width="350" height="350" class="thumbnail imageRight"/>
    <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
    <p><?php the_excerpt(); ?></p>

<?php } } ?>
<div class="pagination">
<?php             
    global $wp_query;

    $big = 999999999; // need an unlikely integer

    echo paginate_links( array(
        'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
        'format' => '?paged=%#%',
        'current' => max( 1, get_query_var('paged') ),
        'total' => $wp_query->max_num_pages
    ) );
?>
</div>
于 2014-12-25T17:00:25.533 に答える
0

と の両方next_posts_linkprevious_posts_link、グローバル$wp_queryとを使用し$pagedます。それを確認するには、ソース コードの関数呼び出しを追跡する必要があります(ただし、 を使用すると非常に明白ですnext_post_links)。カスタムクエリでは機能しませんが、ごまかすことができると思います.

$old_wpq = $wp_query;
$wp_query = new WP_Query ( $post_query );
// your loop
$wp_query = $old_wpq;

それを試してみてください。

関連スレッド wordpress.stackexchange.com があります。

https://wordpress.stackexchange.com/questions/77661/next-posts-link-works-only-with-original-wp-query/77666#77666

于 2013-01-11T23:53:04.633 に答える