get_field()
指定したフィールドの値を取得する。
テキストやチェックボックスといった全てのフィールドタイプで利用可能。
get_field($select_name, [$post_id], [$format]);
$select_name(必須): フィールド名またはフィールドキー
$post_id:投稿ID。デフォルトは現在の投稿。
$format:取得した値にフォーマットを適用するかどうかを指定。フォーマットはフィールドタイプ毎(テキストエリアの場合はwpautop()やnl2br()などが適用)。デフォルトはtrueです。
返り値:指定されたフィールド値。各フィールドタイプ毎に返り値のデータ形式(文字列、整数、配列など)が異なります。
現在の投稿から値を取得
$val1 = get_field( "field_name1" );
各オブジェクトから値を取得
2つ目の引数$post_idに投稿IDを指定すると、現在の投稿記事以外からも取得できる。
親ページの記事IDを取得して、親が保持するフィールド名field1の値を取得しています。
// 親ページの記事IDを取得 $parnet_id = $post->post_parent; // 親ページのfield_name1の値を取得 $val1 = get_field( "field_name1", $parnet_id );
2つ目の引数$post_idには、カテゴリIDやタクソノミーIDなどを指定することができる。
// 投稿IDを指定 $post_id = 1; // カテゴリの取得はタクソノミーのスラッグ + "_" + タームID $post_id = "category_3"; // カスタムタクソノミーの取得はタクソノミーのスラッグ + "_" + タームID $post_id = "event_4"; // ユーザの取得は "user_" + ユーザID $post_id = "user_2"; // 設定ページを指定 $post_id = "option"; $val1 = get_field( 'field_name1', $post_id );
フォーマットを無効にして値を取得
3つ目の引数$formatにfalseを指定すると、フォーマット処理をキャンセルできます。
$obj = get_field ( "image_field", false, false );
※3つ目の引数を指定するには、2つ目の引数も指定する必要がある。現在の投稿IDでよければ、2つ目の引数にfalseを設定。
get_fields()
全てのフィールドの値を取得。
get_fields([$post_id], [$format]);
$post_id:投稿IDを指定する。(デフォルト:現在の投稿)
$format:取得した値にフォーマットを適用するかどうかを指定する。(デフォルト:true)
返り値:指定されたフィールド値を配列で返す。フィールドが見つからない場合はfalse。
foreachを使ったアクセス
// すべての各カスタムフィールドの名前と値を出力
$fields = get_fields ();
if ( $fields ) {
foreach ( $fields as $name => $val ) {
echo $name . ":" . $val . "
";
}
}
the_field()
指定したフィールドの値を出力する。
the_field($select_name, [$post_id], [$format]);
現在の投稿から値を取得
取得した値をそのまま出力する。
the_field( "field1" );
get_field_object()
get_field_object($select_name, [$post_id = false], [$format = true], [$load = true]);
$select_name(必須):フィールド名またはフィールドキーを指定。
$post_id:投稿IDを指定。(デフォルト:現在の投稿)
$format:フォーマットを適用するかどうか。(true or false)
$load:フィールドの値をロードするかどうか。(true or false)
返り値:下のような配列。
array(
'ID' => 0,
'key' => '',
'label' => '',
'name' => '',
'prefix' => '',
'type' => 'text',
'value' => null,
'menu_order' => 0,
'instructions' => '',
'required' => 0,
'id' => '',
'class' => '',
'conditional_logic' => 0,
'parent' => 0,
'wrapper' => array(
'width' => '',
'class' => '',
'id' => ''
)
);
フィールドのラベルと値を表示
get_field_object()は連想配列を返すので、キーを指定して値を取得する。
$field_name = get_field_object( "field_name" ); // ラベルを表示 echo $field["label"]; // 値を表示 echo $field["value"];
get_field_objects()
指定した投稿のすべてのフィールド情報(ラベルやフィールドタイプ)を返す。
get_field_objects( [$post_id = false], [$format = true], [$load = true] );
$post_id:値が保存された投稿IDを指定。デフォルトは現在の投稿。
$format:フォーマットを適用するかどうか。(true or false)
$load:フィールドの値をロードするかどうか。(true or false)
返り値:下のような配列を返す。
array(
"field_name" => array(
'ID' => 0,
'key' => '',
'label' => '',
'name' => '',
'prefix' => '',
'type' => 'text',
'value' => null,
'menu_order' => 0,
'instructions' => '',
'required' => 0,
'id' => '',
'class' => '',
'conditional_logic' => 0,
'parent' => 0,
'wrapper' => array(
'width' => '',
'class' => '',
'id' => ''
)
),
...
);
すべてのフィールドのラベルと値を表示
get_field_objects()を使って、すべてのフィールドのラベルと値を表示する。
$fields = get_field_objects();
foreach( $fields as $field ){
echo $field['label'] . " : " . $field['value'];
}
フィールドタイプ毎の取得・表示
テキストフィールド
the_field('text');
//if 構文の時に代入演算子を使う場合
$text = get_field('text');
if( $text ):
echo $text;
endif;
画像フィールド
返り値:オブジェクトの場合
<?php $image = get_field('image'); if( !empty($image) ): ?>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<?php endif; ?>
//画像の URL やタイトルなどを個別に取り出す場合
<?php
$image = get_field('image');
if( !empty($image) ):
// 画像から各種値を取り出す
$url = $image['url']; // URL
$title = $image['title']; // タイトル
$alt = $image['alt']; // 代替テキスト
$caption = $image['caption']; // キャプション
$description = $image['description']; // 説明
// thumbnail
$size = 'thumbnail'; // 画像サイズ thumbnail(サムネイル), medium(中サイズ), large(大サイズ), full(元画像)
$thumb = $image['sizes'][ $size ]; // 指定したサイズのサムネイルのURL
$width = $image['sizes'][ $size . '-width' ]; // 横幅
$height = $image['sizes'][ $size . '-height' ]; // 高さ
?>
<a href="<?php echo $url; ?>" title="<?php echo $title; ?>">
<img src="<?php echo $thumb; ?>" alt="<?php echo $alt; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />
</a>
<p>
<?php echo $caption; ?>
<?php echo $description; ?>
</p>
<?php endif; ?>
返り値:URLの場合
<?php if( get_field('image') ): ?>
<img src="<?php the_field('image'); ?>" />
<?php endif; ?>
返り値:IDの場合
<?php
$image = get_field('image');
$size = 'full'; // (thumbnail, medium, large, full or custom size)
if( $image ) {
echo wp_get_attachment_image( $image, $size );
}
?>
チェックボックス・ラジオボタンフィールド
<?php the_field('colors'); ?>
//値が複数の場合
<?php
$colors = get_field('colors'); // 値の代入
if( $colors ){
echo implode(', ', $colors); // 配列要素を文字列「, 」で連結して表示
}
?>
//サンプル
<?php $field = get_field('colors'); if ($field): ?>
<ul>
<?php foreach( $field as $value ): ?>
<li>
<?php echo $value; ?>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
条件付きで表示する場合
<?php
$colors = get_field('colors');
if( $colors && in_array('red', $colors)){
echo '赤があるかどうか判別しました。赤があります。';
}else{
echo '赤があるかどうか判別しました。赤はありません。';
}
?>
ラジオボタンフィールドでラベルを取得して表示する方法
//フィールド名が colors 登録している値とラベルが red:赤 の場合にラベル赤を表示。
<?php
$field = get_field_object('colors');
$value = $field['value'];
$label = $field['choices'][ $value ]; // ラベルを取得
echo $label; // ラベルを表示
?>
チェックボックスフィールドでラベルを取得して表示する方法
//フィールド名が colors 登録している値が red:赤 の場合にラベル(赤)を表示
<?php
$field = get_field_object('colors');
$colors = $field['value'];
if( $colors ){
foreach( $colors as $color ){
echo $field['choices'][ $color ];
}
}
?>
日付(デイトピッカー)
//そのまま表示
<?php the_field('date'); ?>
//カスタマイズして表示
<?php
$date = get_field('date', false, false); //値の取得
$date = new DateTime($date); //日付オブジェクトの作成
echo $date->format('j M Y'); //日付の表示
?>
ファイルフィールド
<?php // ファイル名のテキストリンクを表示
$file = get_field('file');
if($file){
echo '<a href="'.$file['url'].'">'.$file['filename'].'</a>';
}
?>
//ファイルの名前やファイルの絶対パスを取得する
<?php // ファイルの表示
$file = get_field('file'); // フィールド名を指定
if($file){
echo $file['id']; // ファイルの ID を表示
echo $file['title']; // ファイルのタイトルを表示
echo $file['filename']; // 拡張子を含むファイル名を表示
echo $file['url']; // ファイルの URL を表示
echo $file['alt']; // ファイルの alt を表示
echo $file['author']; // ファイルの管理者IDを表示
echo $file['description']; // ファイルのディスクリプションを表示
echo $file['caption']; // ファイルのキャプションを表示
echo $file['name']; // 拡張子を除いたファイル名を表示
echo $file['date']; // ファイルの登録日を表示 20XX-08-08 08:08:08
echo $file['modified']; // ファイルの最終更新日を表示 20XX-08-08 08:08:08
echo $file['mime_type']; // MIME タイプ、PDFであれば application/pdf を返します
echo $file['type']; // ファイルタイプ、PDFであれば application を返します
echo $file['icon']; // WordPress 共通のファイルアイコンのパス
}
?>



コメント