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

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

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

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

PHP

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

0回答

1659閲覧

カスタムフィールドの値、確認ページへの受け渡しがうまくいかない

tomari

総合スコア14

WordPress

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

PHP

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2020/05/07 10:13

できないこと

カスタム投稿タイプの詳細ページにあるカスタムフィールドの値
MW WP Formへ渡す際に、条件によっては確認ページへ値の引き継ぎが行われません。
ご教示いただけましたら幸いです。

実現できていること・できていないこと

フォームへ値を渡すところまでは達成できているのですが、
柔軟コンテンツにおいて同じレイアウトが2つ以上あるページでは
確認画面へ値が引き継がれません。

「見学する」「体験する」という2種類のレイアウトが存在し、

  • 「見学する」が1つ かつ 「体験する」が1つ → 正常に表示
  • 「見学する」が1つのみ もしくは 「体験する」が1つのみ → 正常に表示
  • 「見学する」が2つ以上 もしくは 「体験する」が2つ以上 など同じ種類のレイアウトが複数入る場合 → ※確認ページで値が表示されない※

問題箇所の確認ページでの状況としては、
以下のようにinput の値は渡っています。
<input type="hidden" name="your_course" value="体験する【轆轤(ろくろ)成型体験】">

各記述

single-factory.phpの記述
<!---- 自由選択項目 ----//「見学する」「体験する」 ----> <?php if( have_rows('factory_action_flexible') ): ?> <?php while ( have_rows('factory_action_flexible') ) : the_row(); ?> <!---- 「見学する」を選択した場合 ----> <?php if( get_row_layout() == 'factory_visit_layout' ): ?> <h3 class="single-info-title"><?php the_sub_field('factory_visit_title'); ?></h3> <!-- ※詳細省略※ --> <a class="reserve-btn-link" id="type-visit" href="<?php echo home_url(); ?>/reservation/?post_id=<?php echo get_the_ID(); ?>">見学予約する</a> <?php endif; ?> <!---- 「体験する」を選択した場合 ----> <?php if( get_row_layout() == 'factory_experience_layout' ): ?> <h3 class="single-info-title"><?php the_sub_field('factory_experience_title'); ?></h3> <!-- ※詳細省略※ --> <a class="reserve-btn-link" id="type-experience" href="<?php echo home_url(); ?>/reservation/?post_id=<?php echo get_the_ID(); ?>">体験予約する</a> <?php endif; ?> <?php endwhile; endif; ?>
MW WP Formの設定

「URL引数を有効にする」にチェック。

selectbox箇所
[mwform_select name="your_course" id="your_course" class="your_course" children="" post_raw="true"]

URL設定
入力画面URL  /reservation/
確認画面URL  
完了画面URL  /reservation/reservation-fin/
エラー画面URL 

functions.phpの記述
function SELECT_LOOP( $children, $atts ) { if ( $atts['name'] == 'your_course' && !empty( $_GET['post_id'] )) { $pid = wp_unslash( $_GET['post_id'] ); if( have_rows('factory_action_flexible',$pid) ): while ( have_rows('factory_action_flexible',$pid) ) : the_row(); if( get_row_layout() == 'factory_visit_layout' ): //---- 「見学する」を選択した場合 ---- $visitTitle = strip_tags(get_sub_field('factory_visit_title')); $select = "見学する"."【".$visitTitle."】"; $children[$select] = $select; elseif( get_row_layout() == 'factory_experience_layout' ): //---- 「体験する」を選択した場合 ---- $experienceTitle = strip_tags(get_sub_field('factory_experience_title')); $select = "体験する"."【".$experienceTitle."】"; $children[$select] = $select; endif; endwhile;endif; } return $children; } add_filter( 'mwform_choices_mw-wp-form-639', 'SELECT_LOOP', 10, 2 );

その他 前提等

  • カスタムフィールドはACF Pro版を使用しています。
  • 柔軟コンテンツの最大表示数は4件に設定してあります。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問