カスタムフィールドとは、 WordPressの投稿画面にはタイトルと本文の入力項目しかありません。 カスタムフィールドは、タイトルと本文以外にテキストやチェックボックス、画像などを追加で入力できるエリアを設置することは可能です。 例えば製品情報を掲載する際には、タイトルや本文以外に金額や発売日等を入力したいとなった場合に本文以外に入力フォームを設けることができます。
Advanced Custom Fieldsとは 高度なカスタムフィールドプラグインを使用して、WordPressの編集画面とカスタムフィールドデータのコントロールを完全に制御します。 必要に応じてフィールドを追加します。 フィールドビルダを使用すると、いくつかのボタンをクリックするだけで、WP編集画面にフィールドをすばやく簡単に追加することができます ! どこにでも追加できます。 投稿は、投稿、ユーザー、タクソノミーの用語、メディア、コメント、カスタムオプションのページまで含めてWP全体に追加できます ! どこにでも表示できます。デベロッパーフレンドリーな機能で、テーマテンプレートファイルにカスタムフィールド値を読み込んで表示できます。
目次
wordpressでカスタムフィールドを作成する場合、大まかに2通りの方法があり、プラグインを利用して管理画面から追加する方法と、functions.phpに書く方法があります。
今回のAdvanced Custom Fieldsを利用してカスタムフィールドを追加する方法をお伝えします。
WordPressの管理画面から、「プラグイン → 新規追加」をクリックし「Advanced Custom Field」で検索。 画像のようにインストールして、有効化してください。
管理画面より、カスタムフィールドを開き「新規追加 > フィールドを追加」を押します。
フィールドを追加をクリック後に下記の画像のような画面が表示されます。
最低限下記3つの項目を登録すればカスタムフィールドは作成できます。
「位置」と書かれた部分、ここでルールを設定することで投稿タイプや固定ページ、カテゴリ等にカスタムフィールドを表示できます。 こちらを設定しなくては、カスタムフィールドは表示されないので注意してください。
画像のようにカスタムフィールドを設定した場合の出力方法になります。
<?php the_field('product'); ?>
未入力の場合に非表示にする場合は下記のように記述します。
<?php if( get_field('product') ) { ?>
<?php the_field('product'); ?>
<?php } ?>
その他の項目は下記のように記述いたします。
<?php the_field('field-name'); ?>
<?php
$colors = get_field('field-name');
if( $field-name ){
echo implode(', ', $field-name);
}
?>
<?php the_field('field-name'); ?>
<?php
$colors = get_field('field-name');
if( $field-name ){
echo implode(', ', $field-name);
}
?>
<?php
$images = get_field('フィールド名');
if($images){echo '<img src="'.$images[url].'">';}
?>
<?php
$images = get_field('フィールド名');
if($images){echo '<img src="'.$images.'">';}
<?php endif; ?>
<?php
$images = get_field('フィールド名');
if($images):
//wp_get_attachment_image_src(画像ID, '画像サイズ')で画像情報を取得
$src = wp_get_attachment_image_src($images, 'full');
//画像URLは配列の[0]にあるので、それを利用して画像出力
echo '<img src="'.$src[0].'">';
endif;
?>
<?php the_field('field-name'); ?>
返り値のフォーマット[User Array],[User Object],[User ID]と3つ選択できます。
今回当社のホームページで利用した[User Array]の記述方法になります。
array() {
["ID"] => int()
["user_firstname"] => string() "名"
["user_lastname"] => string() "姓"
["nickname"] => string() "ニックネーム"
["user_nicename"] => string() "著者アーカイブのURL名"
["display_name"] => string() "ブログ上の表示名"
["user_email"] => string() "メールアドレス"
["user_url"] => string() "プロフィールのサイト項目で入力されたURL"
["user_registered"] => string() "2022-01-01 00:00:00" // ユーザー作成日時
["user_description"] => string() "プロフィール情報"
["user_avatar"] => string() "プロフィール写真のimgタグ" // Gravatar
}
下記のような記述で出力することが確認できました。
<div class="class-name">
<?php
$articleUser = get_field("user-name");
if( $articleUser ): ?>
<div class="class-name">
<?php echo $articleUser['user_avatar']; ?>
</div>
<div class="class-name">
<h6><?php echo $articleUser['display_name']; ?></h6>
<p><?php echo $articleUser['user_description']; ?></p>
</div>
<?php endif; ?>
</div>
Advanced Custom Fieldsは簡単にカスタムフィールが作成できる便利なプラグインです。今回はテキストの項目追加をお伝えしましたが、その他にもいろいろな項目があるので試してみてください!
この記事を書いた人
CONNECTIは人と人を繋ぐ架け橋になるという思いで創業しました。