スポンサーリンク

【ACF】フィールドグループのラベルをページに出力する

アイキャッチ WordPress

Advanced Custom Fieldを使ってフィールドグループのラベル名を投稿に動的に出力する例です。

ACFの内容を「フィールド名」と「値」をワンセットで表示するようなことがよくあるかと思います。

名前:山田たろう
年齢:19歳
趣味:読書

これのフィールド名を変更したいような場合、

氏名:山田たろう
年齢:19歳
好きなこと:読書

フィールド名を手打ちで差し替えても良いのですが、あらかじめACFのフィールドグループのデータから動的に取得しておけば、のちのちラベルを変更した場合でも差し替える必要が無いので便利です。

$html = '';

$args = array(
  'post_type' => 'acf-field',
  'post_parent' => 000, //ACFフィールドグループID
  'posts_per_page' => -1,
  'order' => 'ASC',
  'orderby' => 'menu_order'
);

$fields = get_posts($args);
if (!empty($fields)) {
  $html = '<dl>';
  foreach ($fields as $field) {
    $html .= '<dt>' . $field->post_title . '</dt>'; //フィールド名の出力
    $fieldobject = get_field_object($field->post_excerpt); // フィールドの設定を取得
    switch ($fieldobject['type']) { // 設定に応じた値の出力
      case 'image': // 画像(URL)の場合
        $html .= '<dd><img src="' . get_field($field->post_excerpt, false) . '"></dd>';
        break;
      default: // その他の場合
        $html .= '<dd>' . get_field($field->post_excerpt, false) . '</dd>';
        break;
    }
    $html .= '</dl>';
  }
}
echo $html;

'post_parent' => 000,の「000」にはACFのフィールドグループのIDが入ります。ACFのフィールド編集画面を開き、URLにあるhttps://***/wp-admin/post.php?post=000&action=editの数字部分を入力してください。

また、この例ではget_field_objectを使ってそれぞれのフィールドの設定によってHTMLの出力内容を調整しています。サンプルでは画像用の分岐を入れていますが、そのほかにも複数選択の項目やリンクなど、フィールドグループの内容に応じて追記してください。

WordPress&Cocoonのお悩みにお答えします

クラベルではWordPressのブログサイト構築、Cocoonテーマの導入やカスタマイズに関するご相談を承っております。

お困りの方はぜひ一度お問い合わせください。また、現在ココナラをつかったサービス出品も始めてみました。お悩みおひとつの解決からお手軽にお申込みできますので、こちらもぜひあわせてご覧ください。

最短当日★ワードプレスの疑問質問トラブル解決します ご相談無料!初心者歓迎!優しく丁寧、徹底的にサポートします!
Cocoonテーマサイト構築&カスタマイズします ご相談無料★公式サポート対象外もOK!プログラミングはお任せ
WordPressWeb開発
この記事は良かったですか?
最新情報をお届けします。
クラベルをフォローする
スポンサーリンク
この記事を書いた人
クラベル

Webサイト構築、Wordpressのカスタマイズやphpプログラミングなどやってます。BPM(ビジネスプロセス管理)、BPR(業務改革)コンサルなどにも従事。世の中すべてピタゴラ装置をモットーに自動化します。ブログは省エネ運営中。Cocoonカスタマイズやゲーム、ガジェットの話題など。

プロフィール詳細、お仕事のご依頼はこちら

クラベルをフォローする
クラベル

コメント

タイトルとURLをコピーしました