$args = array('numberposts' => 10, 'tag' => 'my-tag', 'ID' => 555');
$posts = get_posts($args);
特定のタグから 10 件のレコードのみを取得したいのですが、ID は数字よりも小さいものです。get_posts 引数でこれを行う方法はありますか? 引数配列でより大きい、より小さい、または等しくないを指定するにはどうすればよいですか?
ありがとう...
X より小さい ID の投稿を取得したい場合の良い解決策:
$post_ids = range(1, 555);
$args = array('numberposts' => 10,
'tag' => 'my-tag',
'post__in' => $post_ids');
$posts = get_posts($args);
girlieworks の小道具はこちら: https://wordpress.org/support/topic/wp_query-how-to-get-posts-with-and-id-lower-than?replies=7#post-8203891
それらすべてを照会する必要があり、クエリループ内で、id が選択した数より大きいか小さいかを確認します。
私が知っている限り、クエリ自体はそのようなリクエストを処理できません。
フィルターを使用しposts_where
て SQL クエリを変更し、結果を特定の数よりも小さい (または大きい) ID を持つ投稿に制限することができます。
$args = [
'tag' => 'my-tag',
'posts_per_page' => 10,
// Required: posts_where is not triggered without setting suppress_filters to false.
'suppress_filters' => false,
];
$max_id = 155;
$filter_handler = function( $where ) use ( $max_id ) {
global $wpdb;
return $where . $wpdb->prepare( " AND {$wpdb->posts}.ID < %d", $max_id );
};
add_filter( 'posts_where', $filter_handler );
$posts = get_posts( $args );
remove_filter( 'posts_where', $filter_handler );