カスタム投稿タイプのススメ

他のブログでも、散々説明されているので、今更ですが、、、改めて説明します。

WordPressの魅力

WordPress5.0がリリースされ、しばらく経つと、もしかしたら「使いやすい」と評判が上がり、WordPressの魅力は「無料」「使いやすい」となるかもしれません。

しかしながら、世界中で利用されている最大の理由は「拡張性」です。

社内に、少しだけコーディング(PHP、HTML、CSS、CSS Framework)できる人がいれば、ビジネスに必要な機能を追加することができます。

プラグインを拡張する

例えば、イベント予約システムを自分で作るのはナンセンス(大変だし、有料、無料の良いプラグインがある)ですが、イベント予約システムの「かゆいところ」を、修正することが、WordPress、オープンソースだからこそ可能です。

またWordPressのプラグインの多くは、「かゆいところを、自分でかける」ように、フック(フィルターフック、アクションフック)という仕組みが用意されています。

WooCommerceで「氏名を入力させたい」場合、数行のプログラムを追加するだけでOKです。

テーマを拡張する

同様に、「子テーマ」が便利です。メインのテーマには変更を加えず、「痒いところ」だけを、ボリボリとかくように、変更が可能です。ここでも、少しだけコードが使えると、できる幅が広がります。

例えば、WooCommerceの自動返信メールを修正したいなら、子テーマを使います。

投稿タイプを拡張する

プラグインの改良、テーマの拡張以上に便利に感じるのが「投稿タイプ」を追加することや、投稿に「追加の属性(情報)」を用意することです。

これが、思いの外便利です。


投稿タイプの拡張例

例えば、toiee.jp の利用者から、「講座資料を簡単に探してダウンロードしたい!」という要望がありました。

そこで講座資料を「ブログの投稿」で用意するか、ページで用意するか?を考えました。資料に必要なものは、

また、資料一覧を「1ページ」で表示して、そこで欲しい資料をクリックすると、詳細なページを表示したいと考えました。また、全てのページは「ちゃんと統一された状態」を実現したいと考えました。

(ここにモックアップ)

こう考えると、ブログ投稿、ページでは収まりきりません。書き込み用の雛形を用意して、それをコピペするという「紙とペン」みたいな使い方はしたくありません(後で変更が必要、学習コストがかかる、無駄が発生)。

このような場合に活躍するのが「カスタム・ポスト・タイプ」です。

カスタム投稿タイプとは?

WordPressでは、ブログ記事(post)も、固定ページ(page)も、「投稿の一種」として扱われています。他にも、WooCommerceというショッピングカートプラグインをインストールすれば、product という投稿の種類が追加されます。あるいは、EventManager というプラグインをインストールすると、 event という投稿の種類が追加されます。

上記では、page, attachment, post が表示されいてる。メニューなども、postの一種として登録されている

様々なプラグインが「独自の投稿の種類=投稿タイプ」を作って、それを利用して、便利な機能を提供しています。

WordPressは「カスタム投稿タイプ」を簡単に追加できるようになっています。そして、ルールが整備されているので、ルールを理解すれば、

と、Webページを表示させることができます。


カスタマイズのために必要なもの

知識

必要な知識は以下です。

見た目を実現するには、HTML/CSS を書く必要があります。また、レスポンシブに対応させよう、高度な表示をしたいなどの場合(そうでなくても)、CSS Framework を使うべきです(楽をして、成果を最大にするために)。

WordPressの投稿の仕組みは、データベースを覗くアプリ(Local by Flywheelを使うと良いです)を使って、探求しつつ、WordPressのドキュメントなどを読むと理解できます。

テンプレートの名前のルールも、ドキュメントがあります。必要な知識は、大抵の場合、 wordpress.org にあります。

道具

次に道具を紹介します。

自分でPHPコードを書いても良いですが、ミスが増えますし、覚えることを増やしてしまいます。「良いプログラマーは、コードをなるべく書かない。良い仕事をする他人を信頼する」という原則があります。

そこで、WordPressのコアに関わって、長年開発を続け、大勢の人からフィードバックを受け、チームで開発している便利なプラグインを利用します。

色々使ってお勧めは

の2つを使うことです。この2つをセットで使って「独自プラグイン化」して、カスタム投稿タイプを作ることです。

それぞれ、マウス操作で設定をすると、「PHPコード」を取得できます。このPHPコードを、WordPressの独自プラグインとして追加することで、

させやすくなります。

その他、役立ちそうな情報

wp-cliで、”wp scaffold”

WordPressをコマンドで操作するためのものです。この機能で「プラグインの雛形」を生成できます。ルールを覚えなくて良いので、ささっと使えます。またシンプルで、WordPressがお勧めする作り方にそうので、利用するのが良いと思います。

また、子テーマの生成もできるので、利用すべきでしょう。

Github

開発したプラグインの変更履歴や、改善アイデアなどを残すために使います。絶対に使ったほうがいいです。

WP Pusher

Githubに更新をアップデートしたら、本番サイトに反映してくれるプラグインです。これを使うと、手動でFTPするなどがなくなるので、手間が減って、ミスが減ります。


以上を使うと、

  1. Custom Post Type UI(CPT UI), Advaced Cusutom Fields(ACF)で投稿タイプを定義
  2. コードを取得する
  3. wp scaffold を使ってプラグインの雛形を作る
  4. ここに2のコードを埋め込む
  5. テンプレートを用意する
  6. Github で管理し、Github経由でアップデートがされるようにする

と準備すると、

  1. 開発用WordPressで作る、試す、テストする
  2. Githubに公開(すると、自動的に本番サイトで使えるようになる)
  3. 本番サイトでデータ入力したり、ナビを調整する

とシンプルになります。

参考になれば。

関連する耳デミー

関連するポケてら