カスタム投稿タイプのススメ
WordPressをもっとビジネスに活かす
他のブログでも、散々説明されているので、今更ですが、、、改めて説明します。
WordPressの魅力
WordPress5.0がリリースされ、しばらく経つと、もしかしたら「使いやすい」と評判が上がり、WordPressの魅力は「無料」「使いやすい」となるかもしれません。
しかしながら、世界中で利用されている最大の理由は「拡張性」です。
社内に、少しだけコーディング(PHP、HTML、CSS、CSS Framework)できる人がいれば、ビジネスに必要な機能を追加することができます。
プラグインを拡張する
例えば、イベント予約システムを自分で作るのはナンセンス(大変だし、有料、無料の良いプラグインがある)ですが、イベント予約システムの「かゆいところ」を、修正することが、WordPress、オープンソースだからこそ可能です。
またWordPressのプラグインの多くは、「かゆいところを、自分でかける」ように、フック(フィルターフック、アクションフック)という仕組みが用意されています。
WooCommerceで「氏名を入力させたい」場合、数行のプログラムを追加するだけでOKです。
テーマを拡張する
同様に、「子テーマ」が便利です。メインのテーマには変更を加えず、「痒いところ」だけを、ボリボリとかくように、変更が可能です。ここでも、少しだけコードが使えると、できる幅が広がります。
例えば、WooCommerceの自動返信メールを修正したいなら、子テーマを使います。
投稿タイプを拡張する
プラグインの改良、テーマの拡張以上に便利に感じるのが「投稿タイプ」を追加することや、投稿に「追加の属性(情報)」を用意することです。
これが、思いの外便利です。
投稿タイプの拡張例
例えば、toiee.jp の利用者から、「講座資料を簡単に探してダウンロードしたい!」という要望がありました。
そこで講座資料を「ブログの投稿」で用意するか、ページで用意するか?を考えました。資料に必要なものは、
- 資料名
- 資料の簡単な概要(2、3行)
- 資料の使い方の説明
- 資料のサムネイル画像(どんな資料か)
- 資料そのもの(PDF)
- 資料が使われている講座へのリンク
また、資料一覧を「1ページ」で表示して、そこで欲しい資料をクリックすると、詳細なページを表示したいと考えました。また、全てのページは「ちゃんと統一された状態」を実現したいと考えました。
(ここにモックアップ)
こう考えると、ブログ投稿、ページでは収まりきりません。書き込み用の雛形を用意して、それをコピペするという「紙とペン」みたいな使い方はしたくありません(後で変更が必要、学習コストがかかる、無駄が発生)。
このような場合に活躍するのが「カスタム・ポスト・タイプ」です。
カスタム投稿タイプとは?
WordPressでは、ブログ記事(post)も、固定ページ(page)も、「投稿の一種」として扱われています。他にも、WooCommerceというショッピングカートプラグインをインストールすれば、product という投稿の種類が追加されます。あるいは、EventManager というプラグインをインストールすると、 event という投稿の種類が追加されます。
様々なプラグインが「独自の投稿の種類=投稿タイプ」を作って、それを利用して、便利な機能を提供しています。
WordPressは「カスタム投稿タイプ」を簡単に追加できるようになっています。そして、ルールが整備されているので、ルールを理解すれば、
- 独自の投稿の種類を追加し
- ルールに従って「表示用のファイル」を用意する
- メニューなどからリンクする
と、Webページを表示させることができます。
カスタマイズのために必要なもの
知識
必要な知識は以下です。
- HTML/CSS/CSS Framework
- PHPの基礎知識(ちょっとした記述ができればOK)
- WordPressの投稿の仕組み
- テンプレートファイルのルール
見た目を実現するには、HTML/CSS を書く必要があります。また、レスポンシブに対応させよう、高度な表示をしたいなどの場合(そうでなくても)、CSS Framework を使うべきです(楽をして、成果を最大にするために)。
WordPressの投稿の仕組みは、データベースを覗くアプリ(Local by Flywheelを使うと良いです)を使って、探求しつつ、WordPressのドキュメントなどを読むと理解できます。
テンプレートの名前のルールも、ドキュメントがあります。必要な知識は、大抵の場合、 wordpress.org にあります。
道具
次に道具を紹介します。
自分でPHPコードを書いても良いですが、ミスが増えますし、覚えることを増やしてしまいます。「良いプログラマーは、コードをなるべく書かない。良い仕事をする他人を信頼する」という原則があります。
そこで、WordPressのコアに関わって、長年開発を続け、大勢の人からフィードバックを受け、チームで開発している便利なプラグインを利用します。
色々使ってお勧めは
- Custom Post Type UI (カスタム投稿タイプを定義する)
- Advanced Custom Fields
の2つを使うことです。この2つをセットで使って「独自プラグイン化」して、カスタム投稿タイプを作ることです。
それぞれ、マウス操作で設定をすると、「PHPコード」を取得できます。このPHPコードを、WordPressの独自プラグインとして追加することで、
- 開発用のサイトから、本番サイトへ反映
させやすくなります。
その他、役立ちそうな情報
wp-cliで、”wp scaffold”
WordPressをコマンドで操作するためのものです。この機能で「プラグインの雛形」を生成できます。ルールを覚えなくて良いので、ささっと使えます。またシンプルで、WordPressがお勧めする作り方にそうので、利用するのが良いと思います。
また、子テーマの生成もできるので、利用すべきでしょう。
Github
開発したプラグインの変更履歴や、改善アイデアなどを残すために使います。絶対に使ったほうがいいです。
WP Pusher
Githubに更新をアップデートしたら、本番サイトに反映してくれるプラグインです。これを使うと、手動でFTPするなどがなくなるので、手間が減って、ミスが減ります。
以上を使うと、
- Custom Post Type UI(CPT UI), Advaced Cusutom Fields(ACF)で投稿タイプを定義
- コードを取得する
- wp scaffold を使ってプラグインの雛形を作る
- ここに2のコードを埋め込む
- テンプレートを用意する
- Github で管理し、Github経由でアップデートがされるようにする
と準備すると、
- 開発用WordPressで作る、試す、テストする
- Githubに公開(すると、自動的に本番サイトで使えるようになる)
- 本番サイトでデータ入力したり、ナビを調整する
とシンプルになります。
参考になれば。