コラム(WEB制作のポイント)
WEB制作のポイント 2015年2月18日
WordPressでCMS:仕様項目まで更新可能、運用コストを低減
製品カテゴリーごとに異なるスペック項目を持つ企業は多い。一般的な方法論でCMSを開発すると、スクラッチ(手組み)によるものになることが多く、初期コストは莫大なものとなる。
さらに、製品カテゴリーごとにスペック項目が異なるので、データベースにはすべての仕様項目を格納する必要があり、担当者による運用の手間も相当なものになってしまう。
しかし、WordPressが標準で備える管理画面とデータベース構造を利用すれば、一定の品質を確保しながら開発工数を削減でき、情報の更新も複雑さが緩和され担当者は煩わしさから解放される。
当社では早くからWordPressに着目し、試行錯誤を繰り返しながら積極的にCMSツールとして活用してきた。この記事では、WordPressを使った製品情報セクションの複雑な要求仕様を満たす方法を、有用なプラグインソフトを含めて紹介する。
訪問者により有益な情報を提供したいと考えつつも、開発コストと運用方法を解決できずにいたWEB担当者にとって、課題を解決するためのヒントになれば幸いだ。
筆者おすすめ、とっつきやすい WordPress 参考書(1)
小さなお店&会社の WordPress超入門 ―初めてでも安心! 思いどおりのホームページを作ろう!
筆者おすすめ、とっつきやすい WordPress 参考書(2)
「いちばんやさしいWordPressの教本第3版 人気講師が教える本格Webサイトの作り方」
筆者おすすめ、とっつきやすい WordPress 参考書(3)
「Web担当者のためのWordPressがわかる本」
カテゴリーごとに異なるスペック項目まで更新できる製品検索システム
製品に幅広いカテゴリーを持つメーカーでは、製品分類ごとに仕様の項目が異なっている。それゆえ、これらを管理するCMSも非常に複雑なものとなってしまいがちだ。
一般的なアプローチとしては、システム構築前に分類/品種/品目ごとにすべてのスペック項目を洗い出し、それぞれにデータベース(テーブル)を準備し、その上で管理することになる。
しかしこの手法では、将来にスペック項目が変更された場合や、当初想定していなかった新製品を掲載する際、柔軟性に欠け、その対応にはシステム的な変更作業が伴うことが多い。
当社では、WordPressのカスタムフィールドとプラグインを駆使することで、スペック項目も含めてクライアント自身で製品情報の更新作業を完結できることを実現した。
某機械メーカーが抱えていた課題
旧サイトでは、全カテゴリー/全製品のスペック項目を漏れなくデータ項目としていた。更新のためのCMSツールは導入されていたものの、更新作業ではデータがある部分のみ入力を行い、表示処理の段階でデータ表示の有無を制御していたのである。
また、スペック項目すべてを一律に管理画面で更新できるようにCMS化すると、製品情報の管理画面が数スクロール分の長さになってしまったり、更新しようとする製品には関係のない項目も表示されることになり、入力間違いが発生するといったトラブルが生じていた。
さらに、データベースのカラムとしてスペック項目を設定していたため、クライアント側で新製品をリリースする際には、新たにスペック項目の追加が必要となってしまう。都度発生する運用コストも本当に必要なのかという疑問の声さえ社内から聞こえていた。
要求仕様
上記の状況を踏まえ、クライアント側から提示された要件は以下の通りだ。
- 製品スペックに詳細な表記が必要(項目名、単位、スペック内容、全10~30項目)
- カテゴリーごとに異なるスペック項目や単位をCMSで管理できること
- 同一カテゴリー内においても、スペック内容の有無で項目自体の表示/非表示を制御できること
- 製品スペックを条件にした製品検索は不要
スペック項目にとらわれない情報の保持
スペック項目をデータベースのカラムに設定せず、WordPressのカスタムフィールドを利用することで、項目名や項目数に制限されないデータの保持を実現。スペック項目をCMS上で更新でき、その内容を即時登録可能とした。また、後述の「Advanced Custom Fieldsプラグイン」を採用することにより、柔軟性の高い製品登録画面を実現した。
カテゴリーごとはもちろん、製品ごとに異なるスペック項目をCMS上で自由に管理でき、不必要なスペック項目の排除を実現した。
本稼働後、製品に関するすべての情報をクライアント側でメンテナンスできる仕組み
選択項目(マスター)は、WordPressの「タクソノミー」を利用し、管理画面上で追加/削除を行えるように配慮。製品情報のメンテナンスについては、当社に依頼されることはなく、クライアント自身で完結できるようにした。
現行サイトからのスムーズなデータ移行
旧サイトからのデータ移行に際し、当社とクライアントが共同でカテゴリーに共通的なスペック項目をExcelシートにまとめた。クライアントは、初期移行情報としてそのExcelシートに全製品情報を記述。当社は、そのExcelシートをインポートする機能を構築した。
使えるカスタムフィールドを実現し、開発コストを削減する「Advanced Custom Fields」
WordPressには、「カスタムフィールド」と呼ばれる、投稿する記事に対してタイトルと本文以外の任意の「名前」と「値」を与えることができる機能が標準で準備されているものの、標準のままでは使えない。
「Advanced Custom Fields」は、管理画面からカスタムフィールドを簡単に定義できたり、入力欄を自動生成したりと、WordPressのカスタムフィールドを利用しやすくしてくれるプラグインだ。
また、入力したデータをデータベースから容易に取り出すことができるAPIを提供してくれているので、クライアントの操作で更新内容を表示することも可能にする。
筆者が「Advanced Custom Fields」を利用し、WordPressで実現した機能は以下のものだ。
- スペック項目、単位、内容を1セットとして自由に追加/削除/編集する機能
- Excelファイルのインポート機能
- スペック項目の順番を自由に調整する機能
自由なカテゴライズを実現する「Custom Post Types」
WordPressに標準で実装されている分類項目は「投稿分類」のみだが、「Custom Post Types」を利用すれば、管理画面上で分類項目の追加や、その項目に含まれる選択項目の編集ができるようになる。
また、前述の「Advanced Custom Fields」と連携させれば、WordPressでより柔軟な管理画面を実現することができる。
「Custom Post Types」は、次の機能を実現するために利用した。
- 製品分類以外の分類項目2種の追加とその選択項目の編集
WordPressは、プラグインを組み合わせると、使い勝手の良いデータ入力ツールとして活用することができる。
さらに工夫を加えれば、プログラムの知識のないクライアント側で自由なデータ管理さえ実現してしまうCMSとして活用できるようにもなってしまうスグレものだ。
今後もWordPressを活用したCMSについて情報を提供していく予定なので、あなたのより良いWEBサイトづくりの参考になれば幸いである。