Custom Field GUI の管理画面で「キー」と「表示名」を別にするカスタマイズ

Custom Field GUI Utility に JaSMiN さんから「キーは英字で、表示は日本語にできたらいいなぁ」というコメントをいただきました。

確かにおっしゃるとおりで、これはかなり便利になるカスタマイズだと思います。

カスタムフィールドのキーとして保存しておくデータは、英数字のみの方が後々都合がよいでしょうし、運営後にカスタムフィールドの管理画面上の表示名を変更したくなったときに、今までの仕様だとカスタムフィールドの「キー」を変更しなければならず、過去のカスタムフィールド情報と別々の種類のデータを持つことになってしまいます。

その点、「キー」と「表示名」を別々にしておけば、「表示名」だけを変更すれば良いので非常に使い勝手が良くなります。

というわけで、今回「キー」と「表示名」を別々にできるようにしてみました。

カスタマイズ内容

Custom Field GUI をカスタマイズしてカスタムフィールドをもっと便利に使う方法 という記事で行った、フィールドの下にサンプルなどを表示できるようにするカスタマイズと同様の方法をとりました。

僕はPHP はおろかプログラミングは素人で JavaScript 初心者程度のレベルなので詳しくは分かりませんが、記事投稿画面に textfield などを出力する関数に、「$fieldname」をいう引数を追加するなどのカスタマイズをしてみました。

使い方

ここでは、今回カスタマイズした部分の使い方の説明と表示テストをしますので、このプラグイン自体の説明は Custom Field GUI Utility をご覧ください。

conf-xx.ini ファイル側

conf-common.ini 、conf-post.ini 、conf-page.ini ファイルには以下のように記述します。

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

この中の[半角大かっこ]で囲まれた部分は今までどおりカスタムフィールドの「キー」に該当し、その下の「fieldname」部分が管理画面での表示名になります。

テンプレート側

テンプレート側には、カスタムフィールドを反映させるテンプレートタグを書きます。

上記の例であれば「キー」は「共通Plan」ですので、次のようなテンプレートタグを書けばいいわけです。

<?php echo get_post_meta($post->ID,'共通Plan',TRUE); ?>

今回は、Custom Field GUI の管理画面にサムネイルを表示するカスタマイズ で実験したときのをイメージフィールドを一つだけにした以下のコードがテンプレートに書いてあります。

<!-- 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 テスト -->

表示テスト

管理画面は次のようになりました。前提条件も合わせてご確認ください。

  • カスタムフィールドのキー: 共通Plan
  • 表示名: plan(共通表示)

cfg_utility03-01.jpg

表示結果は次のようになりました。OKですね。

cfg_utility03-02.jpg

ダウンロード

ダウンロードは以下のページからお願いします。

  • このエントリーをはてなブックマークに追加
Just a second...