WordPressで現在の投稿クエリに準拠したから全ての投稿IDを取得する方法
作成日:
2020年12月23日
WordPressでアーカイブページ表示時には、そのクエリを基準として、posts_per_pageで指定した数だけが表示されます。今回、同クエリ条件から全ての投稿IDを一旦取得しておきたいという事案がありましたのでその方法を備忘録として残しておきます。
コード
PHP
function get_all_posts_ids() {
global $wp_query;
$args = $wp_query->query_vars;
$args['posts_per_page'] = -1;
$args['fields'] = 'ids';
$args['nopaging'] = true;
$the_query = new WP_Query( $args );
$post_ids = $the_query->posts;
wp_reset_postdata();
}
add_action( 'wp_head', 'get_all_posts_ids', 10 );
まず、
PHP [3]
$args = $wp_query->query_vars;
全件数をIDで取得したいので
PHP [4-5]
$args['posts_per_page'] = -1;
$args['fields'] = 'ids';
さらに
PHP [6]
$args['nopaging'] = true;
nopaging (真偽値) - すべての投稿を含めるか、ページ送りに対応させます。デフォルト値は false で、ページ送りに対応します。
関数リファレンス/WP Query - WordPress Codex 日本語版これで条件通りの投稿IDを全て取得することが出来ました。
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
関連投稿
Loading...
コメントをどうぞ