Custom Field GUI Utility 3 - WordPress プラグイン

  • 2010年1月21日 05:59
  • WordPress Plugins

WordPress 3.3 には、Custom Field GUI Utility 3.2 をご利用ください。

[2011-03-22] WordPress 3.1 に対応し、少しパワーアップした ver 3.1 を公開しました。それとともに、当ドキュメントも書き直しました。イメージフィールドやファイルフィールドの仕様を変更したので、利用中のプラグインはバージョンアップしない方が良いかもしれません。

ver 2.x はこちらをご覧ください。

Custom Field GUI Utility とは

このプラグインは、WordPress のカスタムフィールドを使いやすくするプラグインです。

cfgu200-01-thumb.png

オリジナルのプラグインは、「投稿」の編集画面にカスタムフィールドを入力するフォームを生成する「Custom Field GUI」です。当プラグイン( Custom Field GUI Utility )は、そのオリジナルのプラグインをさらに使いやすくカスタマイズしたものです。

オリジナルプラグインとの違い

当プラグインとオリジナルプラグインの違いをご紹介します。

投稿タイプによる使い分けが可能

「投稿」「ページ」「カスタム投稿タイプ」ごとにカスタムフィールドの表示・非表示を切り替えることができます。

カテゴリごとの使い分けが可能(ver 3.1 以降)

「投稿」の場合、その投稿が属するカテゴリごとにカスタムフィールドの表示・非表示を切り替えることができます。

カスタムフィールドの表示名を自由に変更可能

オリジナルのプラグインでは、カスタムフィールドの「キー」を管理画面上の「表示名」(項目名)としているので、一度そのカスタムフィールドの名前で運用を開始してしまうと、「この表示名が分かりにくいんだけど」と思っても容易に変更することができませんでした。

そこで、当プラグインでは、カスタムフィールドの「キー」と管理画面上の「表示名」を使い分けられるようにしました。これにより、運用中自由に「表示名」を変更することができます。

画像専用のイメージフィールドを搭載

管理画面上でサムネイルが表示される「イメージフィールド」を搭載しています。サムネイルをクリックすると、実画像をオーバーレイ表示することができます。

WordPress のオリジナルのアップローダーを使用し、画像の URL のみでなく、imgタグ、リンク付きの imgタグも簡単に挿入することができます。挿入する URL や img タグは、アップローダー上で、フルサイズの画像にするかサムネイルの画像にするかを選択できます。(ver 3.1 で廃止)

ファイル専用のファイルフィールドを搭載

イメージフィールドとほぼ同様の仕組みで、サムネイル表示のないファイルフィールドを搭載しています(ver 2.0.0 以降)。

WordPress のオリジナルのアップローダーを使用し、ファイルの URL のみでなく、aタグも簡単に挿入することができます。(ver 3.1 で廃止)

複数選択可能なチェックボックスグループを搭載

複数選択できるチェックボックスグループを搭載しています(ver 2.0.0 以降)。

必須項目を設定可能

必須項目を設定することができます。必須項目が未入力のまま「公開」ボタン等を押すと、未入力の必須項目がオーバーレイ表示されます(ver 2.0.0 以降)。我ながら良いアイデアだと思います。

区切り線が使用可能

カスタムフィールドの間に区切り線を入れることができます。カスタムフィールドが多くなったときに便利です(ver 1.1.2 以降)。

最新版ダウンロード

以下のページから最新版をダウンロードしてください。

また、バージョン管理の環境を Git に変更したので、以下のページからも最新版をダウンロードすることができます。

チェンジログはこちら

確認済みの動作環境

WordPress

Custom Field GUI Utility 3.1
WordPress 3.1(3.3には未対応)
Custom Field GUI Utility 3.0.0
  • WordPress 2.9.x

ブラウザ

ブラウザが影響するのはアップローダーやサムネイル表示、必須項目に関する動作です。カスタムフィールドの機能自体は使用できます。

  • Firefox 3 (推奨)
  • Safari 3 以降 (推奨)
  • Google chrome
  • Internet Explorer 8
  • Internet Explorer 7

Oprera も大丈夫だと思います。上記以外の環境ではテストはしていませんが一度お試しください。

使用する前の準備

設定ファイルの編集

ダウンロードしたファイルを解凍します。解凍してできた custom-field-gui-utility フォルダ内の conf.ini の内容を変更します。

conf.ini ファイルは、デフォルトでは全種類のフィールドのサンプルが設定されているので、それを適宜変更します。このファイルに並べた順番どおりに管理画面に表示されます。

各項目の役割は以下のとおりです。なお、カスタムフィールドのタイプごとに設定する項目が異なりますので、タイプごとの説明欄もご参照ください。

[半角大かっこ] (必須)

カスタムフィールドの「キー」に該当します。半角英数、「 _ 」「 - 」のみを使用してください。

cfgu200_key.png

fieldname (必須)

管理画面上に表示するカスタムフィールドの名前です。

cfgu200_fieldname.png

type (必須)

カスタムフィールドの「値」の入力方法です。詳細は後述します。

class (必須)

「post」「page」またはカスタム投稿タイプの post_type (register_post_type関数の第一引数の値)を指定します。ここで指定した投稿タイプの編集画面に表示されるようになります。

複数指定する場合は、半角スペースを空けてください。

また、ここに指定できるのは post, page 等の投稿タイプに限らず、半角英数なら何でもOKです。ここに指定した値がフィールドのボックスの class 名になりますので、CSS で管理画面をカスタマイズしたい場合にもご利用いただけます。

category

投稿の場合(上記 class で post が指定されているもの)、ここでカテゴリのスラッグ(slug)を指定することにより、カテゴリごとに表示を制御することができます(ver 3.1 以降)。ただし、今のところ、一度カテゴリを選択して保存しないと反映されません。複数指定する場合は、半角スペースで区切ります。

【例】スラッグが cat1, cat2 という2つのカテゴリがある場合

  • cat1 だけ表示:category = cat1
  • cat2 だけ表示:category = cat2
  • cat1 と cat2 の両方で表示:category = cat1 cat2
value

選択系メニューの項目名です。値は「#」(半角)で区切ります。ラジオボタン(radio)、セレクトメニュー(select)、チェックボックスグループ(multi_checkbox)のみ必要です。

default

初期値です。テキストフィールド(textfield)、ラジオボタン(radio)、セレクトメニュー(select)、チェックボックス(checkbox)、チェックボックスグループ(multi_checkbox)で使用します。

rows

テキストエリアの行数です。複数行テキストエリア(textarea)で使用します。

cols

テキストエリアの幅です。複数行テキストエリア(textarea)で使用します。

size

フォームの横幅です。1行テキスト(textfield)、イメージフィールド(imagefield)、ファイルフィールド(filefield)で使用します。

sample

入力例や説明です。

must

must = 1 を設定すると必須項目になります。必須項目には、カスタムフィールド名の先頭に必須マークが表示されます。

cfgu200_must.png

入力タイプ8種類 + 1種類について

このプラグインではカスタムフィールドの「値」の入力方法が、次の8種類 + 1種類に対応しています。

textfield

1行のテキスト入力フィールドです。入力されたテキストが値になります。
input 要素 : type="text"

cfgu200_textfield.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = textfield(必須)
class = post page free_class_name(必須)
category = cat1 cat2
default = 初期値
size = 35
sample = オススメのWebサイトのタイトルを入力してください
must = 1
imagefield

画像専用の1行のテキスト入力フィールドです。詳細は後述します。入力された URL が値になります。ver 1.1.0 から img タグも挿入できるようになりました。(ver 3.1 で廃止)
input 要素 : type="text"

cfgu200_imagefield.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = imagefield(必須)
class = post page free_class_name(必須)
category = cat1 cat2
size = 35
sample = input the example or the caption
must = 1
filefield

ファイル専用の1行のテキスト入力フィールドです。詳細は後述します。入力された URL が値になります。ver 2.0.0 で追加しました。a タグも挿入できます。(ver 3.1 で廃止)
input 要素 : type="text"

cfgu200_filefield.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = filefield(必須)
class = post page free_class_name(必須)
category = cat1 cat2
size = 35
sample = input the example or the caption
must = 1
checkbox

チェックボックスです。チェックが入っていると「 true 」、入っていないと「 false 」が値となります。条件分岐に便利です。
input 要素 : type="checkbox"

cfgu200_checkbox.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = checkbox(必須)
class = post page free_class_name(必須)
category = cat1 cat2
default = checked(初期値をチェック状態にする場合は「checked」を指定)
sample = input the caption
must = 1
multi_checkbox

複数選択が可能なチェックボックスグループです。チェックが入っている項目名をカンマ区切りにしたものが値となります。
input 要素 : type="checkbox"

cfgu200_multi_checkbox.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = multi_checkbox(必須)
class = post page free_class_name(必須)
category = cat1 cat2
value = HTML#CSS#JavaScript#PHP(必須)
default = HTML#CSS#PHP
sample = input the caption
must = 1
radio

ラジオボタンです。項目は複数設置できますが一つのみ選択可能です。選択された項目名が値になります。
input 要素 : type="radio"

cfgu200_radio.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = radio(必須)
class = post page free_class_name(必須)
category = cat1 cat2
value = 0-9#10-19#20+(必須)
default = 10-19
sample = input the caption
must = 1
select

セレクトメニューです。一つのみ選択可能で選択された項目名が値になります。
select 要素

cfgu200_select.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = select(必須)
class = post page free_class_name(必須)
category = cat1 cat2
value = High#Medium#Low(必須)
default = Low
sample = input the caption
must = 1
textarea

複数行のテキストエリアです。入力されたテキストが値になります。
textarea 要素

cfgu200_textarea.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = textarea(必須)
class = post page free_class_name(必須)
category = cat1 cat2
rows = 4
cols = 40
sample = input the example or the caption
must = 1
hr

区切り線です。区切り線に名前を表示することもできますので、カスタムフィールドが多くなったときのカテゴライズに便利です。

cfgu200_hr.png

【設定項目】

[custom_field_key](必須)
fieldname = 表示名(必須)
type = hr(必須)
class = post page free_class_name(必須)
category = cat1 cat2

インストール

上記で設定ファイルを編集した後、custom-field-gui-utility フォルダを wp-content/plugins/ ディレクトリにアップロードします。

管理画面の「プラグイン」より、このプラグインを「使用する」にすればOKです。

イメージフィールド、ファイルフィールドの使い方

このプラグインのメイン機能の一つ、イメージフィールド(imagefield)、ファイルフィールド(filefield)の使い方を説明します。なお、これらの機能については、ver 3.1 から仕様が変更になりました。

必須項目の設定

ver 2.0.0 から「必須項目」を設定できるようになりました。必須にしたい項目に「must = 1」を追加すればOKです。詳しくは以下のページをご覧ください(動画あり)。

テーマにカスタムフィールドを反映させる方法

次に、テーマでカスタムフィールドを表示させる方法を紹介します。

ライセンス

The MIT License

商用利用の方は寄付をご検討いただければ幸いです。また、個別なカスタマイズ等は有料でお受けしますのでご相談ください。

Amazonギフト券でも大歓迎です。その場合は、「info@tinybeans.net」にお送りください。

チェンジログ

【2011-03-22 追記】

ver 3.1 を公開しました。カテゴリごとの表示の切り替えが可能になるとともに、イメージフィールド・ファイルフィールドの取り扱い方が変わりました。

【2010-03-13 追記】

区切り線のclassにpostやpageを指定しても、どちらにも表示されてしまう不具合を修正しました。

【2010-02-24 追記】

「Close」ボタンが表示されない不具合があり、facebox.js内のパスを修正した ver 3.0.3 を公開しました。

【2010-01-31 追記】

主に新規投稿時に不要なデータが保存されてしまうのを回避するように修正しました。

【2010-01-21】

ver 3.0.0 を公開しました。

注意

自分の環境では何度もテストはしているので大丈夫だと思いますが、当プラグインの使用により、何らかの不具合が生じても一切責任を負いません。それをご了承の上、ご使用ください。

以上です。

「Custom Field GUI Utility」に関連する記事

トラックバック

トラックバックURL: http://www.tinybeans.net/cgi-bin/mt/mt-tb.cgi/880

コメント

categoryの設定に関して
==以下引用==
投稿の場合(上記 class で post が指定されているもの)、ここでカテゴリのスラッグ(slug)を指定することにより、カテゴリごとに表示を制御することができます(ver 3.1 以降)。ただし、今のところ、一度カテゴリを選択して保存しないと反映されません。複数指定する場合は、半角スペースで区切ります。
==引用ここまで==
上記に、「一度カテゴリを選択して保存しないと反映されません。」とありますが、これは投稿自体をカテゴリを選択した状態で一度保存しなければいけないということでしょうか?
仮にカスタムフィールドに必須項目のイメージフィールドを1個設置していた場合に現状、新規投稿画面ではそのイメージフィールドが必要ないカテゴリでも表示され、必須であるために画像を入れなければ保存もできないという状況が起きています。
これは現状の仕様であるのかこちらの設定ミスによるバグなのか確認したくコメントしました。

ETさん、コメントありがとうございます。

> 「一度カテゴリを選択して保存しないと反映されません。」とありますが、これは投稿自体をカテゴリを選択した状態で一度保存しなければいけないということでしょうか?

はい、そのとおりです。

> 仮にカスタムフィールドに必須項目のイメージフィールドを1個設置していた場合に現状、新規投稿画面ではそのイメージフィールドが必要ないカテゴリでも表示され、必須であるために画像を入れなければ保存もできないという状況が起きています。これは現状の仕様であるのかこちらの設定ミスによるバグなのか確認したくコメントしました。

現状の仕様です。使い勝手が悪くて申し訳ありません(><)
カテゴリを選択したときに、そのカテゴリに関係のないフィールドを非表示にしてしまうというカスタマイズを行えば回避できると思います。

また、試していませんが、以下のサイトのプラグインを利用すればうまくいくかもしれません。

カテゴリを指定して新規投稿するカスタマイズ | Synergy Software シナジー・ソフトウェア
http://bit.ly/w5b0cS

いつも大変便利に使わせていただいています。

ver3.1について質問なのですが、イメージフィールドで画像をアップロードした際、「カスタムフィールドに挿入」ボタンを押した後、ギャラリータブの表示画面に移りますがこれは仕様でしょうか?

また、その状態からボックス外(暗転している部分)クリックで投稿画面に戻るとフィールドに値が入らないのですが、こちらも仕様なのでしょうか?

ちなみに、ボックス右上の×ボタンを押して戻ると、値がちゃんと入ります。

satoshiさん、返信が遅くなってすみません。いずれの動作も今のところ仕様です。
「カスタムフィールドに挿入」ボタンを押した後の動作は、「すべての変更を保存」ボタンを押したときと同じ挙動になります。
ボックス右上の×ボタンを押さないと正常に動作しない点は、今後改善したいと思います。

了解いたしました。ご回答ありがとうございました。

すみません、3.1対応と言うことなのでそもそも対応していないのかもしれませんが、WordPress 3.2.1でマルチサイトインストールをし、ネットワークで有効にした場合ですが、管理画面のブログやフォーラムの内容を読み込まなくなり、プルダウンで動くメニューが動作しなくなります。

おそらくAjaxで動いているJavaScript周りが何かと干渉して止まってしまっているのだと思いますが、何か原因が分かりますでしょうか。

一応Chromeのデベロッパーツールで確認する限り「cfg-utility.js:181 Uncaught TypeError: Object [object Object] has no method 'on'」のエラーが出ているようです。

よろしくお願いいたします。

shokun0803さん、Custom Field GUI Utility 3.2.x は、WordPress 3.3x用になります。なので、WordPress 3.2.1 については、Custom Field GUI Utility 3.1.x 系を使ってみてください。

なお、マルチサイトについては動作検証していません。動くかどうか分かりません(><)案内不足ですみませんが、試してみてください。

あと、そうやってエラー箇所をご連絡いただけると対応が楽になります!ありがとうございます!

こんにちは。いつも便利にこのプラグインを使わせていただいてます。

このたび、クライアントより質問があったので確認したのですが、IE9で、画像を選択する際のFaceboxが開かないようなのですが、これは今後対応されるリストにあがってましたでしょうか?

たけCさん、WordPress と Custom Field GUI Utility のバージョンは何でしょうか?
IE9以外は動きますか?

コメントする