WordPressのクエリについて

クエリについて

クエリの概念がわかりづらいので、丁寧に説明していきます。 クエリとは、WordPress内でどのようにループを行うのか指定する命令です。

クエリとメインクエリがあります。 WordPress標準で備わっているのがメインクエリです。

メインクエリ

メインクエリは表示しているページによって動きが変化します。
例えばindex.phpでは表示設定で入力した数字だけループを行います。 single.phpでは1度だけループし、カテゴリページではカテゴリ指定した記事のみを自動的にループしてくれる仕組みが最初から備わっているわけです。

サブクエリ

メインクエリ以外にループさせたいものがあった場合(例えばサイドバーに最新の記事一覧を表示させる等です。)、新しくクエリを自作しなくてはなりません。そこで使用するのはWP_Queryです。

サブクエリのサンプルです。

一行ずつ見ていきます。

どんなループを作るのか、決めて$argsに代入しています。
ちょいちょい忘れる『WP_Query』の使い方 | 予習と復習で、どのループをどんなふうに作るか わかりやすいと思います。 膨大にありますが、この組み合わせでWPのコンテンツをどのように見せていくのかが肝になって行きます。ここではposttypeで投稿記事だけを、postsper_pageで5だけ繰り返すと指定しています。

ここで$argsの入ったクエリを新たに作る宣言をしています。 その塊を$the_queryに代入しています。

while文でどれだけの間ループを繰り返すのかを決めています。この場合$the_queryの回数分、記事があるだけ繰り返す、という意味になります。

は単一のタイトルの表示を示します。

ここで、条件以外になったらループをやめます。

参考

関数リファレンス

WordPressで押さえておきたい!getposts,WPQuery,query_posts の違いと用例|TECHNICAL BLOG|株式会社エムハンド

WordPressテーマの「while (haveposts()) : thepost();」の意味は? | PHPプログラミングの教科書 [php1st.com]

WordPress ループ&クエリーのモヤモヤを解消しよう! | wpxtreme

pregetpostsアクションフックについて

pregetpostsはWordpressがメインクエリを実行する前に呼び出される「アクションフック」と呼ばれるもの。メインクエリの内容を変えたいときに利用するといい。 function.phpに記述していく。

一つづつ解説していきます

ここでフックの指定をしています。testpreget_postsはユーザー定義関数。

ifで条件を指定しています。ここではメインクエリかつ管理画面では適用しない、という条件になっています。ismainqueryは現在のクエリがメインクエリかどうかを判断する関数です。

更にはこんなふうに描くことも出来ます。

管理画面でメインクエリーで月別アーカイブの時に適用させる書き方です。

ここでも条件式を書いています。ishomeでトップページの場合次のクエリーの処理を実行するという意味です。
is
home()をis_category()とすればカテゴリーページのみの対象となります。

$query->set(‘パラメータ’,’値’)
とすることでさまさまな条件を指定できます。 例として

WordPressでホームやアーカイブ毎に表示条件を変える(ismainquery と pregetposts フック) – Gatespace’s Blog

WordPress contact-form7の使い方

 

超メジャーなコメントフォームプラグインcontact-form7を使用してみた際の覚書。

 
以下のURLからプラグインをダウンロードし有効化する。
 
57cc0e91-b3bf-4c39-8f72-f246c39b50ee
メニューに「お問い合わせ」という項目が出現する。7c4bf379-46b3-4341-add8-59a10a2c4c2d
ショートコードをゲットする。ここでは以下の様になっている。
[contact-form-7 id=”68″ title=”コンタクトフォーム 1”]
 
2db1d745-8b3f-49e7-add5-94aa5961665d
固定ページに「お問い合わせ」の様なページを作成し、先程のコードを記載する。
作成した固定ページを表示し、テスト送信してみる。
 
fb23b58c-a20c-4472-8b4d-e6eaae916ff6
お見事。
もう少し項目を増やして見る。
例えば電話番号の項目を増やすとする。
 
978ef7d0-e4f0-43db-9bcb-4e8ba28b2a02
 
8ea36ddc-5054-4c44-b305-b980bbce33a0
1:送信先のメールアドレス
2.差出人のアドレス
3.メールの件名
4.追加ヘッダー 「Cc: test01@example.com」「Bcc: test01@example.com」また複数の場合は「Bcc: test01@example.com, test02@example.com」の用に記述する
5 本文 HTMLで<dl><dt><dd>で囲むとデザインがしやすくて良い。
 

サンクス画面の設置

 
固定ページに新たに確認ページを作成、これをthanksとスラッグをつけ、フォームページ(/contact)の小ページにする(/contact/thanks)。
 
8d13d3df-0027-499a-9976-3b1573ff8823
9244cf95-e045-406f-814f-5fe81e48e6ad
問い合わせに戻り、その他設定タブに以下を記述する 。
on_sent_ok: ‘location.replace(“/contact/thanks/”);’
 
これでメッセージ送信が行われると、thankページに移動することができる。
 
ContactForm7には確認画面が無い。確認画面を付属させる拡張プラグインも出ているが、初めから備え付けているフォームを使うほうがメンテの観点からおすすめ。
 
MW WP Form — WordPress Plugins – https://ja.wordpress.org/plugins/mw-wp-form/
 

NHKスペシャル 縮小日本の衝撃

25年後

100年近く行われてきた国勢調査で日本の人口がマイナス94万7千人減少している事がわかった。 北海道の団地がもぬけの殻になっている。 陸路では通えなくなった土地もある。 島根県では大正時代よりも人口が少なくなっていった。 大正9年に行われた国勢調査で5千6百万だったがそれから産めよ増やせよと人口が爆発的に増えていったが、この先数十年は急激に減少に転じる。 続きを読む

VCCWでWordPress環境を構築

VCCWのインストール方法

仮想環境を作ってwordpressを扱おうと思う。xamp,mampがあると思うが、vccwを使うことで、より簡単に様々なことができるようになる。データベースの作成も不要、本番環境との同期も楽チン。

インストール編

virtualboxvagrantのインストールをする。

以下のプラグインをインストール。

名前をつけてダウンロード VCCWもダウンロードして好きな名前にリネームする。ユーザーフォルダ直下に「Vagrant」フォルダを作って移動する。

※vagrant 1.8.7の場合以下のコマンドが必要

その後VagrantBoxにVCCWを追加する。

初期設定

provision/default.ymlをコピーして「site.yml」にする。

こんな感じで書いておいて使い回しすることができる。

立ち上げ

hogehogeディレクトリに行ってVagrantを立ち上げます。

WordPress

https://hogemoge.local/ か 192.168.33.11でアクセスできる。管理画面にはwp-login.phpで入ることができる。passとIDはadmin/admin。

WordPressメモ書き

記事一覧にサムネイルを表示する

mythumb()のパラメータで異なるサイズのサムネイルを出力する。

投稿日の追加

index.php

index.phpにページネーションを追加する

カテゴリページを作成する

index.phpを複製しcategory.phpを作成する。そのファイルの上の方に

を追加するとカテゴリーを選ぶと専用ページにカテゴリータイトルが表示される。

タグページを作成する

category.phpをコピーしてtag.phpにコピーする。

続きを読む

VCCWのインストール方法

VCCWのインストール方法

##インストール編

virtualboxvagrantのインストールをする。

以下のプラグインをインストール。

]

名前をつけてダウンロード VCCWもダウンロードして好きな名前にリネームする。ユーザーフォルダ直下に「Vagrant」フォルダを作って移動する。 続きを読む