バグなのか、何か間違っているのかはわかりませんが、_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つしか返されません(同じカテゴリに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) ));
お役に立てれば。