【ワードプレス】問い合わせフォームから届く、ひたすら迷惑なスパムメールを防ぐ為には?
さてさて、使えるようになると開発が捗りまくるWP_Query。
前回はパラメータの大まかな指定方法やループの指定方法をご紹介しました。
今回はパラメータの内容の投稿タイプの指定、特定の投稿ページ・固定ページの指定のやり方についてご紹介していきたいと思います。
その前に前回のWP_Queryループの使用方法のコードについておさらいしておきましょう。
<?php
$args = array(
'post_type' => 'post', //投稿タイプの指定
'posts_per_page' => '-1' //表示件数を指定。-1は全件表示
'order' => 'DESC' //昇順・降順の表示順を指定
);
$the_query = new WP_Query($args);
if($the_query->have_posts()): while($the_query->have_posts): $the_query->the_post();
?>
ループの中身の記述
<?php endwhile; endif; wp_reset_postdata(); ?>
過去の記事
⇓⇓⇓
投稿タイプの指定
ある投稿タイプに関連付けられた投稿を表示します。
post_type(文字列string/配列array):投稿を「投稿のタイプ」によって取得できます。
デフォルト値は’post’。’tax_query’がクエリにセットされている場合は、デフォルト値は’any’になります。
<?php
$args = array(
'post_type' => 'post', //投稿
'post_type' => 'page', //固定ページ
'post_type' => 'revision', //履歴(リビジョン)
'post_type' => 'attachmen', //添付ファイル
'post_type' => 'pnav_menu_item', //ナビゲーションメニュー項目
'post_type' => 'any', //リビジョンと'exclude_from_search'パラメータがtrueにセットされたものを除き、すべてのタイプを含める。
'post_type' => 'カスタム投稿タイプ'//任意のカスタム投稿タイプ名
);
?>
特定の投稿や固定ページの指定
特定の投稿(カスタム投稿含む)や固定ページに基づいてコンテンツを表示する
<?php
$args = array(
'p' => [整数], //投稿のID
'name' => [文字列], //投稿のスラッグ
'title' => [文字列], //投稿のタイトル
'page_id' => [整数], //固定ページのID
'pagename' => [文字列], //固定ページのスラッグ
'post_parent' => [整数], //固定ページのID。指定したページの子ページを取得
'post__in' => [配列], //投稿のID。配列で複数指定
'post__not_in' => [配列], //投稿のID。省きたい投稿IDを配列で指定。
);
?>
ワードプレス学習にお勧めの書籍
ビジネスサイトを作って学ぶ WordPressの教科書 Ver.5.x対応版
こちらの書籍はデモサイトを作りながらワードプレスで最低限使うであろう技術が詰まった一冊です。この本を何度か学習することによりワードプレスの基本的な考え方から少し応用に踏み込んだところまでの技術が身に着きます。
WordPressデザインレシピ集
こちらの書籍はデモサイトを制作して動きを把握するというより、辞書的な立ち位置の本なのかな?と思います。リファレンスが読みにくいときに各メソッドやクラスの内容を簡潔に使用例も交えて紹介してくれているので「あれ?あの処理はどうするんだっけ?」というようなときに辞書として重宝しております。