imagefield・filefield の使い方(ver 3.1 以降)

このプラグインのメイン機能の一つ、イメージフィールド(imagefield)、ファイルフィールド(filefield)の使い方を説明します。

なお、これらの機能については、ver 3.1 から仕様が変更になりました。

ファイルのアップロードとカスタムフィールドへの挿入

cfgu200_imagefield_howto.png

まず、テキストフォーム下の「画像を追加」のアイコンをクリックします(ver 3.2 では「アップロード/挿入」)。

add-media-v31.jpg

WordPress オリジナルのアップローダーが起動しますので、通常通り画像をアップロードします。

次に、アップローダーの「投稿に挿入」ボタンの手前の「カスタムフィールドに挿入」ボタンをクリックすると、そのアップロードしたファイルの ID と URL がカスタムフィールドに挿入されます。

cfg-ins-button.png

  • 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'] . '" />';
  • このエントリーをはてなブックマークに追加