web-dev-qa-db-ja.com

WPクエリ-category__inと組み合わせてページあたりの投稿が機能しない

バグなのか、何か間違っているのかはわかりませんが、_posts_per_page_を使用しても_category__in_がまったく機能しないようです。

_posts_per_page_を_1_に設定しても、私のクエリは下にありますが、それでもすべての投稿が表示されます。

_$posts = new WP_Query(array(
    'post_type'      => 'post',
    'category__in'   => wp_get_post_categories($post->ID),
    'posts_per_page' => 1,
    'post__not_in'   => array($post->ID)
));
_

何か案は?

1
KeironLowe

私の開発サイトでコードをテストしていますが、結果は1つしか返されません(同じカテゴリに3つの項目があります)ので、コードは問題ないようです。おそらく、posts_per_pageパラメータを無視する他のフィルタが適用されている可能性があります。

WP_Query argsリストで_suppress_filters => true_ paramを使用するか、WP_Queryの代わりにget_posts()関数を使用することができます。関数はデフォルトでsupress_filtersが有効になっているため、コードは

$posts = get_posts(array( 'post_type' => 'post', 'category__in' => wp_get_post_categories($post->ID), 'posts_per_page' => 1, 'post__not_in' => array($post->ID) ));

お役に立てれば。

0
Greg Winiarski