【WordPress】カスタム投稿タイプで投稿できる種類を増やす/カスタムフィールドで記事の入力項目を増やす

WordPress
WordPress
この記事は約7分で読めます。

おはようございます!

 

6月19日、水曜日。快晴🌞

東京の最高気温31℃。昨日との気温差+7℃。

暑いぞー!!ι(´Д`υ)アツィー

 

叫んでも仕方ないので、今日も学んでまいります。

 

今日の教材もこちら!



今日からCHAPTER5に突入です!

 

 

CHAPTER5 投稿タイプ・フィールド・タクソノミーをカスタマイズする

 

SECTION01 カスタム投稿タイプで投稿できる種類を増やす

 

新しい投稿型のページを作成するメリット

ここからは「フード紹介」という新しいコンテンツページを作成

学習用素材の「food.html」と「single-food.html」を確認

<food.html>

<single-food.html>

 

管理画面から投稿したときに自動的に一覧ぺージを更新するため、「投稿」や「固定ページ」と同様、「フード」という新しい投稿型のページを作成する。

 



 

投稿タイプとは

・デフォルト投稿タイプ

投稿タイプという属性

管理画面 → 「投稿」の記事   [投稿タイプ【post】] → データベース

管理画面 → 「固定ページ」の記事[投稿タイプ【page】] → データベース

 

・主要なデフォルト投稿タイプ

ラベル

投稿タイプ名

投稿

固定ページ

添付ファイル

リビジョン

ナビゲーションメニュー

post

page

attachment

revision

nav_menu_item

 

・カスタム投稿タイプ

「フード」という新しい投稿型のページを作成する。

  1. カスタム投稿タイプ「food」を作成
  2. テンプレートファイルを作成

管理画面 → 「投稿」の記事   [投稿タイプ【post】] → データベース

管理画面 → 「固定ページ」の記事[投稿タイプ【page】] → データベース

管理画面 → 「フード」の記事      [投稿タイプ【food】] → データベース

 

・Custom Post Type UIプラグインでカスタム投稿タイプを作成する

インストール→有効化

 

・Custom Post Type UIの設定

「CPT UI」→「投稿タイプの追加と編集」

 

・設定ボックスの主な項目

項目名

内容

一般公開

UIを表示

 

アーカイブあり

・・・

このカスタム投稿ページを表示するかどうか。

管理画面の左メニューにカスタム投稿タイプを表示するかどうか。

「archive-{post_type}.php」のテーマファイルを使用するかどうか。

・・・

 

 

・表示を確認する

 

・カスタム投稿タイプで投稿する

「フード」に投稿してみる。

・設定する内容

設定項目

内容

タイトル

本文

アイキャッチ画像

URL

タコス

「投稿用素材」フォルダー内の「テキスト.txt」を参照

「投稿用素材」フォルダー内の「pic.png」を使用

tacos

 

 

・テンプレートファイルを作成する

「フード」のテンプレートファイルを作成する。

 

・カスタム投稿タイプ表示のテンプレート階層

優先順位

テンプレートファイル名

archive-{post_type}.php

archive.php

index.php

 

メニューの投稿タイプは「food」なので、優先順位が一番高い「archive-food.php」という名前のテンプレートファイルを作成する。

 

→学習用素材の「food.html」を「archive-food.php」にリネーム

※ヘッダー部分とフッター部分の削除を忘れないこと。

 

archive-food.phpを編集>

 

<loop-food.phpを作成>

 

実装!

 

おっけーい!

 

詳細ページに画像と値段が欲しいところだが、それはこの後の章でやるのかな。。

 

よしよし!

 

次のセクションいってみよう!

 



 

SECTION02 カスタムフィールドで記事の入力項目を増やす

 

カスタムフィールドとは

学習用素材の「single-food.html」を確認

 

→「カスタムフィールド」機能を使用して各項目(「価格」「カロリー」「アレルギー」)ごとに入力できるようにする。

※「フード写真」「オススメ」も設定する。

 

・Advanced Custom Fieldsプラグインでカスタムフィールドを作成する

<カスタムフィールドボックス>

→入力するたびに選択する必要があり、決して使いやすいとはいえない。

 

Advanced Custom Fieldsをインストールする

インストール→有効化

 

・フィールドグループを作成する

フィールドグループ
・価格     ・・・カスタムフィールド
・カロリー   ・・・カスタムフィールド
・アレルギー  ・・・カスタムフィールド
・…      ・・・カスタムフィールド
設定!

 

「フード」のタコスを確認すると、

 

フード詳細の設定欄ができた!

各項目を入力していく。

 



 

カスタムフィールドを表示する

「フード」の個別投稿ページのテンプレートファイルを作成し、カスタムフィールドを表示する。

 

・個別投稿表示のテンプレート階層

優先順位

テンプレートファイル名

single-{post_type}.php

single.php

singular.php

index.php

 

・カスタムフィールドの値を表示する

<WordPress関数>

get_post_meta() :特定のキーからカスタムフィールドの値を取得する

 

ただ、少しコードが長いので、Advanced Custom Fieldsが有効化されていれば以下の関数が使える。

 

Advanced Custom Fields関数>

the_field() :特定のキーからカスタムフィールドの値を表示する

 

また、表示せずに値だけを取得したい場合は、

 

Advanced Custom Fields関数>

get_field() :特定のキーからカスタムフィールドの値を取得する

 

 

・テンプレートファイルを修正する

single-food.phpを修正

※忘れずにヘッダー部分とフッター部分を削除

 

なかなかの修正量でした。。。

 

・ブラウザで確認する

アップロードして実装!

 

….

 

まあ、一回で上手くいくとは思ってなかったよ、、、量が量なんでね。。。

 

・・・

 

おっけ。「)」が足りませんでした。

その他もろもろ微修正した結果、

 

一覧(loop-food.php)で価格が直書きだったので修正しました。

 

Facebookのリンクが一つだけ大きいのはよくわからんのでそのまま。

 

今日は2セクション分やったのでそこそこのボリュームになってしまった。

 

暑いので以上です。

 

お疲れ様でした!

 

 



コメント

PAGE TOP
タイトルとURLをコピーしました