Custom Field GUIの基本的な使用方

Posted on October 2nd, 2008 [ Last update date October 3rd, 2008 at 4:40 pm ]

WordPressのカスタムフィールドを便利に使うプラグインとして数回取り上げておきながら、Custom Field GUIの基本的な使用法を書いていない、既にカスタマイズ方法まで書いているのに。

プラグインをダウンロードし解凍すると2つの PHPファイルと readme.txt、そしてカスタムフィールドを設定するファイルのサンプルが rc-custom-field-guiフォルダの中に生成されます。

サンプルの conf-sample.iniのファイルをUTF-8で保存できるテキストエディタで開き設定したいカスタムフィールドの名前とタイプを設定します。

[Plan]
type = textfield
size = 35
 
[Favorite Post]
type = checkbox
default = checked
 
[Miles Walked]
type = radio
value = 0-9 # 10-19 # 20+
default = 10-19
 
[Temper Level]
type = select
value = High # Medium # Low
default = Low
 
[Hidden Thought]
type = textarea
rows = 4
cols = 40

フィールドのタイプは上記サンプルの上から、テキストフィールド、チェックボックス、ラジオボタン、セレクトメニュー、複数行のテキストエリアになります。

カスタムフィールドを設定したらファイル名を conf.iniにして rc-custom-field-guiの中にUTF-8で保存しプラグインディリクトリにアップロードします。

カスタムフィールドをテンプレートに読み込むにはループ内に下記のように記述します。ここでは dl要素内のdd要素に出力していますが、別な出力方法でもかまいません。

<dl>
<dt>名前</dt>
<dd><?php echo get_post_meta($post->ID,’名前’,TRUE); ?></dd>
<dt>電話番号</dt>
<dd><?php echo get_post_meta($post->ID,’電話番号’,TRUE); ?></dd>
</dl>

このとき使用した conf.iniは下記のように指定しています。

[名前]
type = textfield
size = 35
 
[電話番号]
type = textfield
size = 35

上記の例のような表示方法は良く使うのですが、カスタムフィールドが未入力だと見栄えが悪くなるので、カスタムフィールドのデータが入力されているか否かで分岐して下記のように一工夫してみました。

<dl>
<dt>電話番号</dt>
<?php
if(get_post_meta($post->ID,’電話番号’,TRUE)==”):
echo ‘<dd>未登録</dd>’;
else:
echo ‘<dd>’.get_post_meta($post->ID,’電話番号’,TRUE).’</dd>’;
endif;
?>
</dl>

または、

<dl>
<?php
if(get_post_meta($post->ID,’電話番号’,TRUE)!=”):
echo ‘<dt>電話番号</dt>’;
echo ‘<dd>’.get_post_meta($post->ID,’電話番号’,TRUE).’</dd>’;
endif;
?>
</dl>