WordPress で特定のカテゴリーに属する記事をランダムに表示する方法
目次
背景
勉強会のネタ作成のため、WordPress で書かれた記事のうち、特定のカテゴリーに属する記事のみをランダムに取得して表示するコードを作ったので、メモしておきます。
方法
特定のタグが付いた記事を取得する方法とほぼ同じで非常に簡単です。
query_posts() 関数に渡すパラメータを指定するだけ。
ExecPHP などの PHP をページ内で実行できるプラグインを有効にして、次のコードを利用しましょう。
自分の場合は、固定ページを作って動かしてみました。
この例では、「WordPress」というカテゴリーに属した記事をランダムで10件取り出し、一覧を表示してみました。
「記事タイトル」を「the_title()」関数で、「パーマリンク」を「the_permalink()」を関数で表示させています。
※「本文」は「the_content()」関数で表示できますが、コメントアウトしています
if(have_posts()) {
while(have_posts()) {
the_post();
echo the_title() . ‘
‘;
echo the_permalink() . ‘
‘;
//echo the_content() . ‘
‘;
}
}
[/code]
「query_posts()」関数に渡している引数「’category_name=WordPress’」がポイントで、「WordPress」カテゴリーを指定した事になります。
複数形も指定でき、「query_posts(‘category_name=WordPress,tips’)」と書けば、「WordPress」と「tips」カテゴリーを指定した事になります。
他にも、「query_posts(‘cat=12,34’)」の様に「カテゴリー ID」を指定できる他、「category__and」「category__in」「category__not_in」などに対して複数の「カテゴリー」を配列で指定することが可能です。
「query_posts(‘cat=-12’)」の様に「-」を付ければ、特定のカテゴリーを除外できるのも良いですね。
「posts_per_page」は1ページに表示する記事の数を指定します。
WordPress では、テーマなどでページングが可能になっていますが、そのためのパラメータを表示数に使ってみました。
今回の目的には無意味ですが、「paged=3」とすれば、取得した記事の21件目から表示することになります。
SQL だと ASC と DESC ぐらいしか指定が無いのですが、query_posts() では「ID」「author」「comment_count」などが指定できます。
今回は、「rand」を指定してランダムに並べ替えてみました。
「the_post()」関数を実行しないと、次の記事へループが進まず、無限ループするので注意しましょう。
まとめ
query_posts() 関数は引数が非常に多く、とても柔軟に記事情報を取得することができるのが良いですね。
SQL でできる事しかできないと思っていると、無駄に時間を費やしてしまうので注意した方が良さそうですね。
10年集客し続けられるサイトを、ワードプレスで自作する9つのポイント プレゼント
あなたは、24時間365日、自分の代わりに集客し続けてくれるWebサイトを作りたい!と思ったことはありませんか?
私はこれまで500以上のWebサイトの構築と運営のご相談に乗ってきましたが、Webサイトを作ってもうまく集客できない人には、ある一つの特徴があります。
それは、「先を見越してサイトを構築していないこと」です。
Webサイトで集客するためには、構築ではなく「どう運用するか」が重要です。
しかし、重要なポイントを知らずにサイトを自分で構築したり、業者に頼んで作ってもらってしまうと、あとから全く集客に向いていないサイトになっていたということがよく起こります。
そこで今回、期間限定で
『10年集客し続けられるサイトをワードプレスで自作する9つのポイント』
について、過去に相談に乗ってきた具体的な失敗事例と成功事例を元にしてお伝えします。
・ワードプレスを使いこなせるコツを知りたい!
・自分にピッタリのサーバーを撰びたい!
・無料ブログとの違いを知りたい!
・あとで悔しくならない初期設定をしておきたい!
・プラグイン選びの方法を知っておきたい!
・SEO対策をワードプレスで行うポイントを知りたい!
・自分でデザインできる方法を知りたい!
という方は今すぐ無料でダウンロードしてください。
期間限定で、無料公開しています。
※登録後に表示される利用条件に沿ってご利用ください