カスタムフィールドの使い方
WordPress はカスタムフィールドという便利な機能があるが、ちょっと触らないとすぐ忘れてしまうので備忘録的にまとめておく。
Custom Post Type UI
カスタムポストタイプを追加できるプラグイン。例えば「商品」のようなものを投稿と同列に作ることができる。
[CPT UI] > [Add/Edit Post Types] > [Add New Post Type] で追加 / [Edit Post Types] で編集。
「商品」というカスタムポストタイプを作る場合は
Post Type Slug:product
Plural Label:商品
Singular Label:商品
の様に指定する。後はほぼデフォルトでOK。
※ 何故Plural Label とSimgular Label があるかというと英語は複数形があるため。日本語では関係ない。
Supports にチェックしたものが新規追加/編集欄で表示される。
何も表示しない場合は明示的に None をチェック。
アイコンを替えたい場合は Menu Icon に ダッシュアイコンクラス名 を指定する。
例えばカートアイコンを指定するなら Menu Icon
特にカテゴリーやタグを追加したい場合は Bult-in Taxonomies にチェックする。
Advanced Custom Fields
カスタムフィールドを追加するプラグイン。
[カスタムフィールド] > [新規追加] で新規追加 / [編集] で編集。
先ほど作った「商品」に「在庫数」というフィールドを追加する場合は
Show this field group ifを指定する。
[+フィールドを追加] で在庫フィールドを追加する。名前は number とか。
ユーザ一覧から選択させたい場合は、フィールドタイプ:ユーザー を指定する。
例えば上で作った商品を別のカスタムポストタイプから選択させたい場合は
フィールドタイプ:投稿オブジェクト / 投稿タイプ:product を指定する。
Admin Columns
投稿一覧画面のカラムを編集するプラグイン。
[設定] > [Admin Columns] でカスタム投稿タイプを選択して使う。
例えば商品名を表示する場合は
タイプ:カスタムフィールド
ラベル:商品
カスタムフィールド:product
フィールドタイプ:タイトル(Post ID’s)
の様に指定する。
ユーザの場合はフィールドタイプ:ユーザ名(User ID’s)になる。
カスタムポストタイプ、カスタムフィールドの使い方
こんな感じ
1 2 3 4 5 6 7 8 9 10 |
query_posts('post_type=product'); // カスタムポストタイプに product を指定 if (have_posts()): while(have_posts()): the_post(); the_title(); // 商品名 // echo get_the_title(get_the_ID()); // あるいはこっちの書き方でもOK echo ' ' . get_post_meta(get_the_ID(), 'number', true) // 追加した在庫のフィールド値を取得 . "個\n"; endwhile; endif; |
カスタムポスト・フィールドは遅いと聞くけれど、確かにこのやり方だとクエリーが大量に発生するので
遅くなるだろうなあ。手っ取り早いは手っ取り早いんだけれどなあ。