【テーマの自作】記事の一覧取得 – 前編

WordPressのテーマの自作における、記事の一覧の取得について説明していきます。

今回はWP_QueryというWordPressの関数を使って取得する方法で記載していきます。

少しややこしいところなので、前編と後編に分けて記載していきます。

スポンサーリンク

WP_Queryとは

WP_Queryとは、WordPressに元から用意されている「投稿されている記事の情報を取得する」ための関数です。

実際にしようする際には、

 

WP_Query([引数])

 

という使い方をします。

また、[引数]の箇所には「どんな記事の情報を取得するか(例えばカテゴリーが○○○という記事だけ取得する、等)」を決めた設定を引き渡します。

他、WP_Queryに引き渡す内容は「クエリ」と呼びます。

スポンサーリンク

クエリの作成

WP_Query関数を使って記事の一覧を取得するためには、どのような記事を取得するのかを決める「クエリ」を作成する必要があります。

WP_Query([引数])の、[引数]として引き渡す部分のことです。

 

また、このクエリは連想配列(後述)で作成します。

実際にWP_Query関数を使って記事の一覧を取得する場合には、以下のような記載をします。

例として、最新10件の記事内容を取得するクエリを作成しています。

<?php
    $posts_query = array(
        'post_type' => 'post',
        'offset' => 10
    );
?>

【2行目の説明】

「$posts_query」という記述で、posts_queryという名前の変数を作成(宣言)しています。

ここの変数名は自由に設定して問題ありません。

そして、「= array( ~~~~~~ );」という記述で、作成したpotst_queryに対し連想配列を代入しています。

※連想配列を作成する場合は、array([配列の内容]);という記述をします。

 

【3~4行目の説明】

クエリの中身(連想配列)を設定しています。

連想配列を設定する場合は、「,」(カンマ)区切りでそれぞれの値を設定します。

今回の例だと、post_typeというものに’post’を、offsetというものに10を設定しています。

また、連想配列で値を代入する場合は、=ではなく=>を使います。

 

【参考:連想配列について】

連想配列とは、それぞれの配列に名称をつけられるような配列のことを言います。

タンスなどをイメージして頂けるとわかりやすいかもしれません。

例えば、$foodというタンスのそれぞれの引き出しに、「chousyoku」「chuusyoku」「Yuusyoku」という名前を付けておきます。

そして、それぞれの引き出しに関係する値を設定できるのが、連想配列です。

 

(イメージ図)

 

上記のような連想配列を作成する場合は、以下のような記述になります。

<?php
    $food = array(
        'chousyoku' => 'onigiri',
        'chuusyoku' => 'ra-men',
        'Yuusyoku' => 'pasta'
    );
?>

このクエリの設定内容によって、特定のカテゴリに関する記事のみを取得したり、よくブログである「何ページ目の記事一覧を取得する」か、等が指定できます。

どのように指定するのかは、詳しくはリファレンス(外部リンク)に記載されています。

尚、本サイトではいずれ「ページの設定」についてだけは解説したいと思います。

スポンサーリンク

記事一覧の取得

クエリの作成が完了したら、あとは記事一覧を取得するだけです。

記事一覧を取得する場合は、以下のような記述をします。

<?php
    $posts_result = new WP_Query($posts_query);
?>

【2行目の説明】

$posts_resultという変数を作成(宣言)しています。

ここの変数名は自由に設定しても問題ありません。

そして、作成したposts_result変数に対し、WP_Query([引数])の結果を代入しています。

更に、[引数]には「クエリの作成」で作成した配列変数が設定されています。

WP_Query関数にクエリを引き渡すことで、その結果が手に入ります。

今回の例で作成した場合は、最終的に以下のような形になります。

<?php>
    $posts_query = array(
        'post_type' => 'post',
        'offset' => 10
    );

    $posts_result = new WP_Query($posts_query);
?>

上記の例だと10件分の記事を取得するような設定となりますが、取得したい記事の一覧を変えたい場合(例えば20件分取得する、特定のカテゴリの記事のみ取得する、等)はクエリの作成で述べた通り、posts_query変数で使用している連想配列の中身を変えてあげればよいです。

 

記事の一覧の取得はWordPressのテーマ自作において中々複雑な部分ですが、1つずつクリアにしていけば必ず出来るはずですので、是非トライしてみてください。

 

尚、現段階では「内部的に記事一覧を取得出来ただけ」です。

実際に取得した記事の一覧を画面上に表示させるためには、内部的に取得した記事の一覧を元に

「どのようにして画面に表示するか」

を設定していく必要があります。

 

その方法については後編で記載させて頂きます。

他のWordPressに関する記事

WordPressまとめ

WordPressに関する記事をテーマごとにまとめています。 「使い方」と「テーマの自作」については、上から順番に見ていくことでわかりやすいように作成しています。 スポンサーリンク [adcode] [outline[…]

スポンサーリンク