web-dev-qa-db-ja.com

wp_queryの「ページ」が機能しない

私のwordpressブログに前の投稿を表示(前のページ)にコードを追加しようとします。このコードを試してもうまくいきません:

<?php
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array(
    'offset' => 1,
    'cat' => -22,
    'paged'=>$paged
);
$recent = new WP_Query($args);
while($recent->have_posts()) : $recent->the_post();
// here some code to view
<?php endwhile; ?>
<div class="navigation"><p><?php posts_nav_link('&#8734;','next page','previous page'); ?></p></div>
<?php wp_reset_query(); ?>

http://mydomain.com/page/2では機能しません

1
Ehsan

offset paramを設定したので、paged paramは無視されます;)

コーデックスから:

offset(int)-置き換えまたは渡すポストの数。警告:オフセットパラメータを設定すると、ページングが上書きまたは無視されます

このクエリの最新の投稿を無視する場合は、2つの方法で達成できます。

1。カスタムページネーション

$ppp = get_option('posts_per_page');  // or any other method to get your posts_per_page

$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array(
    'offset' => 1 + ( $paged * $ppp ),
    'cat' => -22,
    'paged'=>$paged
);

2。最初の投稿を無視

$most_recent_post_id = ...;  // get the ID of most recent post
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array(
    'post__not_in' => array($most_recent_post_id),
    'cat' => -22,
    'paged'=>$paged
);
4