Custom Field GUI Utility 0.31

  • 2008年6月12日 13:08
  • WordPress Plugins
【注意】このページの内容は過去のバージョンのものです!

このページの内容は、Custom Field GUI Utility のバージョン 0.31 までのものです。当プラグインは、バージョン 1.0.0 からインターフェース等をより使いやすく変更しました。最新の内容は次のページをご覧ください。

このプラグインは、WordPress の「投稿」及び「ページ」の編集画面に、カスタムフィールドを入力するためのフォーム要素を生成し、カスタムフィールドを使いやすくするインターフェースを提供するプラグインです。

オリジナルのプラグインは、「投稿」の編集画面に、上記のインターフェースを提供するプラグイン「Custom Field GUI」です。

今回、このプラグインを少し使いやすくするカスタマイズを行ったので、このページに置いておきます。

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

  • 「投稿」と「ページ」に共通して使うカスタムフィールド、「投稿」のみで使うカスタムフィールド、「ページ」のみで使うカスタムフィールドの3種類を使い分けられる。
  • カスタムフィールドの「キー」と管理画面上の「表示名」を使い分けられる。
  • 「投稿」及び「ページ」の編集画面に生成されたフォームの下に、入力例や説明などを表示できるようにした。
  • 画像の URL を入力すると編集画面上でサムネイル表示をさせて画像を確認できる「イメージフィールド」を搭載。

ダウンロード

【2008-07-16 追記】
WordPress 2.6 でも使用できます。

インストール

ダウンロードしたファイルを解凍します。解凍してできた rc-custom-field-gui-utility フォルダを、wp-content/plugins/ ディレクトリにアップロードします。

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

使用方法

rc-custom-field-gui-utility 内の次の3つのファイルの内容を変更します。

  • conf-common.ini (投稿とページの編集画面に共通して反映)
  • conf-post.ini (投稿の編集画面に反映)
  • conf-page.ini (ページの編集画面に反映)

これらの conf ファイルは、デフォルトでは以下のように設定されていますので、それを適宜変更してください。


【例】 conf-common.ini の場合

[共通Plan]
fieldname = plan(共通表示)
type = textfield
size = 35
sample = input the example or the caption

[共通Image]
fieldname = Image(共通表示)
type = imagefield
idname = commonimage1
size = 35
sample = input the example or the caption

[共通Favorite Post]
fieldname = Favorite Post(共通表示)
type = checkbox
default = checked
sample = input the caption

[共通Miles Walked]
fieldname = Miles Walked(共通表示)
type = radio
value = 0-9 # 10-19 # 20+
default = 10-19
sample = input the caption

[共通Temper Level]
fieldname = Temper Level(共通表示)
type = select
value = High # Medium # Low
default = Low
sample = input the caption

[共通Hidden Thought]
fieldname = Hidden Thought(共通表示)
type = textarea
rows = 4
cols = 40
sample = input the example or the caption

[半角大かっこ]で囲まれた部分がカスタムフィールドの「キー」に該当し、その下の fieldname が管理画面での表示名、typeで「値」の入力方法を指定して、value(値)、default(初期値)、rows(行数)、cols(幅)などを適宜指定します。sample には入力例や説明を記入します。

[半角大かっこ]と fieldname、type、idname 以外は省略できます。

idname はイメージフィールド専用で、それぞれのイメージフィールドに固有の id 名(半角英数)を付けます。他と重ならないように注意してください。

このプラグインの使い方の詳細は、以前オリジナルのプラグインを紹介した記事があるので、そちらもご覧ください。カスタムフィールドを反映させるテンプレートタグのことも説明しています(この記事の後半にもテンプレートタグの例はあります)。

fieldname に関しては次の記事に詳細の説明があります。

イメージフィールドに関しては次の記事に詳細の説明があります。

なお、「今は共通のだけでいいや」など、必要のないファイルは適当にリネームしておけば反映されなくなります。

(例)共通のだけで良い場合
conf-common.ini 、 conf-post-bk.ini 、 conf-page-bk.ini

デザインを変更する

このプラグインで作ったカスタムフィールドが、投稿などの編集画面に反映されたときのデザインを修正する場合は、以下のファイルで /wp-admin ディレクトリの中の「 wp-admin.css 」を上書きします。WordPress 2.5 用です。

なお、これに関しての詳細は以下の記事もご覧ください。

スクリーンショット

デフォルトの設定のままカスタムフィールドが反映された「投稿」及び「ページ」の編集画面は以下のようになります。(イメージフィールドに関しては上記記事でテストしているのでここでは除きます。)

【投稿編集画面】

cfg_utility03_01.gif

【ページ編集画面】

cfg_utility03_02.gif

デフォルトの設定のままのカスタムフィールドが「投稿」及び「ページ」に正常に反映されるか、以下のソースを「投稿」及び「ページ」のテンプレート、single.php と page.php 両方に記入してテストしてみます。


<!-- Custom Field Gui テスト -->
<h3>共通カスタムフィールド</h3>
<dl>
<dt>共通Plan</dt>
<dd><?php echo get_post_meta($post->ID,'共通Plan',TRUE); ?></dd>
<dt>共通Image</dt>
<dd><?php echo get_post_meta($post->ID,'共通Image',TRUE); ?><br />
    <img src="<?php echo get_post_meta($post->ID,'共通Image',TRUE); ?>" /></dd>
<dt>共通Favorite Post</dt>
<dd><?php echo get_post_meta($post->ID,'共通Favorite Post',TRUE); ?></dd>
<dt>共通Miles Walked</dt>
<dd><?php echo get_post_meta($post->ID,'共通Miles Walked',TRUE); ?></dd>
<dt>共通Temper Level</dt>
<dd><?php echo get_post_meta($post->ID,'共通Temper Level',TRUE); ?></dd>
<dt>共通Hidden Thought</dt>
<dd><?php echo get_post_meta($post->ID,'共通Hidden Thought',TRUE); ?></dd>
</dl>

<h3>投稿用カスタムフィールド</h3>
<dl>
<dt>投稿Plan</dt>
<dd><?php echo get_post_meta($post->ID,'投稿Plan',TRUE); ?></dd>
<dt>投稿Image</dt>
<dd><?php echo get_post_meta($post->ID,'投稿Image',TRUE); ?><br />
    <img src="<?php echo get_post_meta($post->ID,'投稿Image',TRUE); ?>" /></dd>
<dt>投稿Favorite Post</dt>
<dd><?php echo get_post_meta($post->ID,'投稿Favorite Post',TRUE); ?></dd>
<dt>投稿Miles Walked</dt>
<dd><?php echo get_post_meta($post->ID,'投稿Miles Walked',TRUE); ?></dd>
<dt>投稿Temper Level</dt>
<dd><?php echo get_post_meta($post->ID,'投稿Temper Level',TRUE); ?></dd>
<dt>投稿Hidden Thought</dt>
<dd><?php echo get_post_meta($post->ID,'投稿Hidden Thought',TRUE); ?></dd>
</dl>

<h3>ページ用カスタムフィールド</h3>
<dl>
<dt>ページPlan</dt>
<dd><?php echo get_post_meta($post->ID,'ページPlan',TRUE); ?></dd>
<dt>ページImage</dt>
<dd><?php echo get_post_meta($post->ID,'ページImage',TRUE); ?><br />
    <img src="<?php echo get_post_meta($post->ID,'ページImage',TRUE); ?>" /></dd>
<dt>ページFavorite Post</dt>
<dd><?php echo get_post_meta($post->ID,'ページFavorite Post',TRUE); ?></dd>
<dt>ページMiles Walked</dt>
<dd><?php echo get_post_meta($post->ID,'ページMiles Walked',TRUE); ?></dd>
<dt>ページTemper Level</dt>
<dd><?php echo get_post_meta($post->ID,'ページTemper Level',TRUE); ?></dd>
<dt>ページHidden Thought</dt>
<dd><?php echo get_post_meta($post->ID,'ページHidden Thought',TRUE); ?></dd>
</dl>
<!-- /Custom Field Gui テスト -->

テキストフィールド、テキストエリアには表示名を、イメージフィールドにはGoogle などのロゴを入れて、その他はデフォルトのままで、結果は以下のようになります。正常に動作しました。

【投稿】

cfg_utility03_03.gif

ちゃんと共通と投稿の値だけ反映されています。

【ページ】

cfg_utility03_04.gif

こちらも共通とページの値だけ反映されています。

ライセンス

もちろん MIT ライセンスです。

チェンジログ

【2008-09-13 追記】

IE で、チェックボックスのチェックが保存後に外れてしまう不具合を修正したバージョン 0.31 を公開しました。

【2008-07-07】

カスタムフィールドの「キー」と管理画面上の「表示名」を使い分けられるバージョン 0.3 を公開しました。

【2008-06-23】

イメージフィールドを追加したバージョン 0.2 を公開しました。

注意

一応自分の環境では何度もテストはしているので大丈夫だと思いますが、僕はプログラミングは素人で手探りで作りましたので、使用は自己責任でお願いいたします。不具合が生じても一切責任を負いません。

トラックバック

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

カスタムフィールドをそのまま使うのも悪くないですが、場合によってはプラグインを使うともっと便利になったりします。今回は、二つのプラグインの複合技です。(... 続きを読む

コメント

すごくいい!
早速使わせていただきます!

要望を言えば日付や時間のフィールドが作れれば発展しそうな予感!?

おっとっと さん、はじめまして。コメントありがとうございます。

日付や時間のフィールドについては、カレンダーでの入力補完できたらいいなというのは僕も考えているので、時間があるときにカスタマイズに挑戦してみますね。

とても有益なプラグインですね!
ありがとうございます!
欲を言えば、、、
[半角大かっこ]で囲まれた部分がカスタムフィールドの「キー」に該当し、~~
の部分ですが、キーは英字で、表示は日本語にできたらいいなぁと思いますが、私はやり方が思いつきません。
なにかいい方法ありませんでしょうか?

JaSMiN さん、はじめまして。コメントありがとうございます。

頂いたコメントの要望に沿うかどうかわかりませんが、Custom Field GUI の管理画面で「キー」と「表示名」を別にするカスタマイズ(http://www.tinybeans.net/blog/2008/07/custom-field-gui-3.html)を行いましたので、記事をご覧ください。

このページの内容も書き換えてあります。

素敵なヒントをありがとうございました!

tinybeansさん、素晴らしいプラグインです、ありがとうございます!!
カスタムフィールドを有効に利用したいと思いつつも、一回、記事投稿画面で内容を指定してしまうと、後で変更する時に、一つ一つ記事を開いて修正しなければならないので、「超メンドクセ~」と極力使用を控えていたのです。

でも、こちらのプラグインのおかげで、Single.php内で画像ファイルやURL、メッセージなどを一括修正することができ、用途がぐんと広がりました。

一つワガママを言えば、カスタムフィールドの内容を、一つの画面で一括修正できる機能があれば・・と思うのですが(一つ一つ記事を開いて書き直すのはホントに面倒です・・)
これはやはり難しいのでしょうね・・

ともあれ、本当にありがとうございました(^^)

また遊びに来ます。

MArie さん、はじめまして。コメントありがとうございます。

僕はもともとあった素晴らしいプラグイン「Custom Field GUI」をちょこっとカスタマイズしただけですので、なんか褒められると恐縮しちゃいますねw

>カスタムフィールドの内容を、一つの画面で一括修正できる機能があれば・・

なるほど。確かにこれができると非常に便利ですが、正直言って、今の僕の技術力では難しいと思います。ただ、(僕も使い方は良く分かってないのですが)phpMyAdmin が使えるのであれば、一応一括して変えられますよ。
「wp_postmeta」の「meta_key」を表示させて、「meta_key」でソートすればカスタムフィールドの内容が「キー」ごとに並ぶので、そこで編集すれば WordPress の管理画面でいちいち記事を修正するよりもずっと楽ですよ。

tinybeansさん。
phpmyadminを使った一括編集の方法を教えて下さって、本当にありがとうございます(^^)
今度、実践してみます。
これが出来るだけでも使い勝手が全然違いますよね。

ホント、こちらのプラグインには大助かりです。
カスタムフィールドを活用するのが楽しくなりました。
重ねて、ありがとうございました(はあと)

いえいえ。もっと他にも便利な方法がないか、考えてみますね。

こんにちは。
とても便利なプラグインありがとうございます。

大変重宝しています。


そこで少し教えていただきたいことがあります。


設定用のiniファイルには

A.投稿のみ
B.ページのみ
C.投稿とページ

の3つのiniファイルがありますよね。

「投稿」にはA.とC.が読み込まれているわけですが、この“読み込まれるiniファイル”の数を増やしたいのですが、どこを調整すればいいのか教えていただけると幸いです。

色々いじってみているのですが、どうにもこうにも読み込んでくれないのです。
真っ白な画面になるか、カスタムフィールド部分だけ読み込まなくなってしまいます。

というのは、投稿に追加するカスタムフィールド数が多くて、
なおかつ、状況によって半分ずつしか使わないからです。

だから、使わない方のカスタムフィールドは閉じておく、
そのために複数のiniファイルを読み込ませたい、
と思ったのです。


すでにA.とC.の二つが読み込まれているので可能ではあるのだろうと思って、色々挑戦したのですが、結局わかりませんでした。


お忙しいとは思いますが、宜しくお願いします。


taka

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

iniファイルの件ですが、xxx.class.php 内の insert_gui や get_custom_fields といった関数が関係してきますが、ここをいじるとなると他にも影響が出てくる可能性がございますので、なんとも言えません。

フィールドを使い分けるのであれば、CSSやjQueryを使ってカスタマイズした方が簡単だと思います。

もしくは、当プラグインをインストール時にリネームして複数インストールしてみてはいかがでしょうか?
こちらでは試していませんが、お試しください。

お役に立てずすいません。

フィールドに「なし」のかわりに英数字で「0」と入れてから投稿を公開すると。そのフィールド内に入力したはずの「0」が消えてしまい何も表示されません。これを「0」のみ入力した際もちゃんと「0」がフィールドに反映されるにはどうしたろよろしいでしょうか。

宜しくお願いしまう。

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

なるほど、確かに今の仕様だとそのようになってしまうかもしれません。
とりあえずですが、フィールドの値が0やnullの場合は数字の「0」を表示する、というようにテンプレートを書いて対応していただけますでしょうか。

今後のバージョンアップ時に修正していきますので、お手数ですが、最新バージョンの動向のチェックをお願いいたします。

すみませんが、よろしくお願いいたします。

コメントする