財団法人さっぽろ産業振興財団が運営する、事業提携を希望する道内の企業のデータベースサイトを制作しました。

WordPressベースとなっていますが、複数条件検索と、各ページの「連携申し込みフォーム」はこのサイト専用のプログラムとなっています。

私はデザインと、検索を含むテーマ全般を担当しました。
フォーム部分は市内のフリープログラマにプラグイン制作をお願いしています。

スマートフォン利用を想定する

事業者が提携先を検討するためのサイトという性格上、スマートフォン用のテーマは用意していません。
ですが、一応は想定しておくべきと考えました。

本文のフォントを大きく、余白を多めに取ることで、スマートフォンやタブレットでも閲覧しやすくしています。
また、CSSスプライトを利用して、画像のリクエスト数もできるだけ削りました。

リクエストの際にいちばん時間がかかるのが、プラグインで追加したCKEditorのJSファイルなので、公開画面のときは参照しないようにできればいいのに…と思います。

WP_Queryクラスのtax_query

このサイトはキーワード検索の他に、都市、産業区分での絞り込み検索ができるようになっています。
地域・業種はカスタムタクソノミー、産業区分はカスタムフィールドです。

こういった複雑な検索はWordPressの基本機能ではできませんが、3.0から本格的に実装された「tax_query」を利用すれば可能です。
一般的な絞り込みによく使われるWP_Query(query_posts関数)に、「tax_query」という配列を渡して、データベースに渡す「クエリ文」を生成させます。

WP_Queryクラスのメリットとデメリット

WP_Queryクラスの良いところは、安全にWordPressに最適化したクエリ文を生成できることです。
その反面、クエリ文を生成するまでのプログラムがひじょうに長いため、若干処理が遅くなります。

WP_Queryクラスではなく、直接PHPのモジュールでクエリ文を生成することも考えたのですが、不特定多数がアクセスするサイトなので、WordPressコアとの互換性や、安全性を優先することにしました。

このサイトは性格上、数千件に達するにはそうとう時間がかかりますが、これが不動産検索、中古車検索となった場合は、コンテンツ数、条件の項目数ともに膨大な数になります。
その場合は、クエリ文の生成もフルスクラッチの方が良いです。

大規模サイトでWordPressを採用する場合は、こちらの記事が参考になります。


WordPressは扱いやすさからデザイナーに人気のあるCMSである反面、本格的に使いこなすにはPHPの正しい知識が必要になってきます。
それぞれの関数が出力するデータの構造、配列の扱い、文字列の無害化、フィルター等による関数の拡張など。

フレームワーク、と呼ぶには微妙なシステムですが、Web制作者が覚えておくべきPHPのスキルを身に付けるには、最適な教材だと思います。

この記事を書いた人

うぇびん

愛知県豊橋市でフリーランスをしている、荒ぶるウェブおばさん。WordPressをはじめとした各種CMSを研究するのが好き。コーディング、WordPressによるサイト構築、改修、復旧などを承っています。