BLOG
WordPressのWP_Queryを固定ページとカテゴリーページで使ってみよう
非常に便利なWP_Queryですが、何が便利かって?なんと指定した投稿の情報を色々とまとめて取得することができちゃうんです。さらに特定の条件を絞って指定することも可能です。そんな便利なWP_Queryですが、まずは固定ページでの使い方を見ていきましょう。
固定ページでWP_Query
// 条件の設定
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'post',
'paged' => $paged,
'category_name' => 'web, graphic, other', // 取得するカテゴリを指定
'posts_per_page' => 12, // 表示する投稿数
); ?>
// クエリの定義
<?php $wp_query = new WP_Query( $args ); ?>
// ループ
<?php
if (have_posts()) :
while (have_posts()) :
the_post();
get_template_part('content');
endwhile;
?>
// 投稿データのリセット
<?php wp_reset_postdata(); ?>
ページナビを使用する場合は、「’paged’ => $paged,」は必須です。続いてカテゴリーページでのWP_Queryの使い方を見ていきましょう。
カテゴリーページでWP_Query
// 条件の設定
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$cat_now = get_queried_object();
$args = array(
'post_type' => 'post',
'paged' => $paged,
'cat' => $cat_now->cat_ID,
'posts_per_page' => 12,
); ?>
// クエリの定義
<?php $wp_query = new WP_Query( $args ); ?>
// ループ
<?php
if (have_posts()) :
while (have_posts()) :
the_post();
get_template_part('content');
endwhile;
?>
// 投稿データのリセット
<?php wp_reset_postdata(); ?>
カテゴリーページで投稿を取得する場合は、「$cat_now = get_queried_object();」と「 ‘cat’ => $cat_now->cat_ID, 」を忘れないようにしてください。ここが固定ページとの違いです。
WP_Queryを使いこなすことができれば非常に便利ですよね。条件の設定はたくさんあるので、状況に応じて調べてみてくださいね。