質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1008閲覧

WordPress Advanced Custom Fieldチェックボックスをショートコードで出力したい

keisuha

総合スコア2

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/08/16 06:20

編集2021/08/16 06:24

前提・実現したいこと

WordPressのプラグイン「Advanced Custom Field」でカスタムフィールドを作り、ショートコードで投稿記事に表示させています。

先日、繰り返しフィールドについて質問させていただき既に解決済みですが、関連でチェックボックスのショートコードでの出力方法の問題が出てきました。

【カスタムフィールドの設定】 フィールドラベル = 各シリーズの情報 フィールド名 = film_series_info フィールドタイプ = 繰り返しフィールド サブフィールド① フィールドラベル = シリーズタイトル フィールド名 = series_title フィールドタイプ = テキスト サブフィールド② フィールドラベル = シリーズのあらすじ フィールド名 = series_story フィールドタイプ = テキストエリア ↑↑↑ ここまでは先日解決致しました。 以下を表示できるよう解決したいです。 ↓↓↓ サブフィールド③ フィールドラベル = 見放題のVOD フィールド名 = unlimited_vod フィールドタイプ = チェックボックス  *選択肢は14あり、チェックしたものだけ表示させたい

サブフィールド③を、以下のように表示したいと考えています。

<h4>視聴可能なサービス</h4> <table> <tr> <td>チェックしたもの①</td><td>チェックしたもの②</td><td>チェックしたもの③</td> </tr> </table>

発生している問題

ネットで調べたコードを参考に自己流でfunction.phpに入力したところ以下のように表示されてしまいます。

<h4>視聴可能なサービス</h4> <table> <tr> <td>Array</td> </tr> </table>

該当のソースコード

function.jpに以下のコードを書きました。

全体で「繰り返しフィールド」を出力しています。
この状態ですとサブフィールド③「unlimited_vod」の部分が正しく表示されません。

//各シリーズの情報 function film_series_info_shortcode_func( $atts ) { $code = ''; while (the_repeater_field('film_series_info')) { $code .= '<h3>' . get_sub_field('series_title') . '</h3>' . get_sub_field('series_story') . '<h4>視聴可能なサービス</h4><table><tr><td>' . get_sub_field('unlimited_vod') . '</td></tr></table>'; } return $code; } add_shortcode( 'film_series_info', 'film_series_info_shortcode_func' );

試したこと

ショートコードで繰り返しフィールドは表示されるものの、サブフィールド③のチェックボックスはきちんと表示されていません。

ネットでチェックボックスの出力方法を調べ、参考にしましたがうまくいきませんでした。

補足情報(FW/ツールのバージョンなど)

コンピュータ = MacBook Pro 13 inch 2017
WordPressバージョン = 5.8
WordPressテーマ = SANGO
エディタ = クラシックエディタ


function.phpに記載したコードを改善するためのアドバイスを頂きたいと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

チェックボックスの値は配列で格納されているのでforeachで取得する必要があると思います。

php

1function film_series_info_shortcode_func( $atts ) { 2 $code = ''; 3 while (the_repeater_field('film_series_info')) { 4 $code .= '<h3>' . get_sub_field('series_title') . '</h3>' . get_sub_field('series_story') . '<h4>視聴可能なサービス</h4>'; 5 $code .= '<table>'; 6 foreach (get_sub_field('unlimited_vod') as $value){ 7 $code .= '<tr><td>' . $value . '</td></tr>'; 8 } 9 $code .= '</table>'; 10 } 11 return $code; 12}

投稿2021/08/16 15:56

webgoto

総合スコア1293

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keisuha

2021/08/17 03:59

先日もご回答ありがとうございます! 今回も無事に表示できました! これを機にPHPの基礎を学んで見たいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問