1

カスタム テーマのカスタム ページ テンプレートには、以下のクエリがあります。このようにすると、ページネーションが機能します:

 $myqueryname = $wp_query;
 $mypost_args = array( 'post_type' => 'friends', 'orderby' => 'title', 'order' => 'ASC', 'posts_per_page' => 4, 'paged' => $paged);
 $wp_query = new WP_Query($mypost_args);
 while ( $wp_query->have_posts() ) : $wp_query->the_post();

    Some html.....

 endwhile;

 previous_posts_link('Prev');
 next_posts_link('Next');

しかし、私がこの方法を使用していると、ページネーションが機能しません:

$mypost_args = array( 'post_type' => 'friends', 'orderby' => 'title', 'order' => 'ASC');
$loop = new WP_Query( $mypost_args );
while ( $loop->have_posts() ) : $loop->the_post();
         Some html.....

endwhile;

previous_posts_link('Prev');
next_posts_link('Next');
wp_reset_query();

なぜこれが起こっているのだろうと思っていましたか?違いはなんですか ?私の質問が漠然としていて申し訳ありませんが、これは、フォーラムからコードをコピーして貼り付けるだけでなく、ワードプレスの動作をよりよく理解するのに役立ちます.

ありがとうございます。

4

1 に答える 1

1

get_next_posts_link (呼び出す関数) のコードを調べるnext_posts_linkと、次のコードがあります。

global $paged, $wp_query;

if ( !$max_page )
    $max_page = $wp_query->max_num_pages;
...

そしてこれがnext_posts_linkの使い方です

 <?php next_posts_link( $label , $max_pages ); ?> 

カスタムクエリを使用する場合$max_pages、ページネーションが機能するように指定する必要があるようです。

ページネーション コードを次のように変更してみてください。

previous_posts_link('Prev', $loop->max_num_pages);
next_posts_link('Next', $loop->max_num_pages);
于 2013-05-19T14:05:52.663 に答える