imagefield・filefield の使い方(ver 3.1 以降)
このプラグインのメイン機能の一つ、イメージフィールド(imagefield)、ファイルフィールド(filefield)の使い方を説明します。
なお、これらの機能については、ver 3.1 から仕様が変更になりました。
ファイルのアップロードとカスタムフィールドへの挿入
まず、テキストフォーム下の「画像を追加」のアイコンをクリックします(ver 3.2 では「アップロード/挿入」)。
![]()
WordPress オリジナルのアップローダーが起動しますので、通常通り画像をアップロードします。
次に、アップローダーの「投稿に挿入」ボタンの手前の「カスタムフィールドに挿入」ボタンをクリックすると、そのアップロードしたファイルの ID と URL がカスタムフィールドに挿入されます。
![]()
- bar.jpg をアップロードし、ID が 123 だった場合のイメージフィールドの例
[123]http://www.foo.com/uploads/bar.jpg
この値は、当プラグイン専用の関数を使って、テンプレートで簡単に取り出せます(下記参照)。
なお、最後にアップローダーを閉じるときは、右上の「×」で閉じてください。
管理画面上のサムネイルをクリックすると、実画像がオーバーレイ表示されます( Facebox 1.2 を使用)。
イメージフィールド・ファイルフィールドの値をテンプレートで利用する方法
ver 3.1 よりイメージフィールド・ファイルフィールドの仕様が変更されたことにより、その値を利用してより柔軟にテンプレートを構築することができます。
当プラグインでは、次の2つの独自関数を利用することができます。
- get_imagefield($key)
- get_attachment_object($post_id)
get_imagefield($key)
get_imagefield($key) は、イメージフィールドやファイルフィールドの値を簡単に取り出すことができます。
この関数は、投稿を取り出すループ中か single.php 内で利用できます。
引数
引数には、イメージフィールドやファイルフィールドのカスタムフィールドのキーを指定します。conf.ini の [ ] で指定したものです。
戻り値
戻り値は、id と url をキーにした連想配列となります。
サンプル
【設定ファイル】
[product_image]
fieldname = 商品画像
type = imagefield
class = post page
【テンプレート】
$imagefield = get_imagefield('product_image');
echo '商品画像のIDは、' . $imagefield['id'] . 'です。';
echo '商品画像のURLは、' . $imagefield['url'] . 'です。';
get_attachment_object($post_id)
get_attachment_object($post_id) は、イメージフィールドやファイルフィールドでアップロードしたメディアの情報を簡単に取り出すことができます。
この関数はどこでも利用することができます。
引数
引数には、イメージフィールドやファイルフィールドでアップロードしたメディアの ID を指定します。ID は、上記 get_imagefield($key) を使って簡単に取り出すことができます。
戻り値
戻り値は、title、url、content、excerpt、parent、mime_type をキーにした連想配列となります。これらのキーとアップローダーで入力できる情報の対応関係は 次のようになります。
- title = タイトル
- url = URL
- content = 説明
- excerpt = キャプション
- parent = 親投稿ID(アップローダーでは指定できません)
- mime_type = メディアタイプ(アップローダーでは指定できません)
サンプル
【設定ファイル】
[product_image]
fieldname = 商品画像
type = imagefield
class = post page
【テンプレート】
$imagefield = get_imagefield('product_image');
$attachment = get_attachment_object($imagefield['id']);
echo '<image src="' . $attachment['url'] . '" alt="' . $attachment['title'] . '" title="' . $attachment['content'] . '" />';


