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

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

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

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

PHP

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

Q&A

2回答

3295閲覧

wordpressのプラグイン「MW WP Form」でのセレクトボックスの動的化について

intkaaa

総合スコア11

WordPress

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

PHP

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

0グッド

0クリップ

投稿2017/05/11 04:18

編集2017/05/11 13:35

###前提・実現したいこと
WordPressでMW WP Formプラグインを利用してセレクトボックスの動的化をするためにAdvanced Custom Fieldsプラグインのアドオンのrepeater fieldを購入して以下記事を参考に設定をしたのですが記事のように反映がされず困っております。
どなたかご教授いただけますと幸いです。

▼参考した記事
MW WP Form で入力要素を動的に出力
http://yuheijotaki.com/1794
MW WP Form で入力要素を動的に出力する
http://www.wp-tech.net/wordpress_tips/3477/

functions.phpには以下のように記述しております。
###該当のソースコード

・該当のmw-wp-form [mwform_select name="entry_date" id="entry_date" show_error="false" class="xxx" children="" value=""] ・functions.php add_filter( 'mwform_choices_mw-wp-form-41', 'SELECT_LOOP', 10, 2 ); function SELECT_LOOP( $children, $atts ) { if ( $atts['name'] == 'entry_date' ) { if( have_rows('entry_date_field','option') ) : while( have_rows('entry_date_field','option') ) : the_row(); $select = get_sub_field('entry_date_field_list'); $children[$select] = $select; endwhile; endif; } return $children; }

###試したこと
上にある2つの記事のどちらの記述とも試しましたが反映されませんでした。
今現在の状況としては、セレクトボックスの中身は空で選択ができない状態です。

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

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

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

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

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

8-0_nyan5

2017/05/11 10:28

最後のふたつの } の後の ; は転記ミスですか?
intkaaa

2017/05/11 13:34

すみません、そうです!うまくいかずつけてみただけで;なしでも動きませんでした
guest

回答2

0

同様の現象かわからないのですが、
私も同様のことでつまづきましたが、
optionsを指定しているのが間違っていて取得できていないのではないでしょうか。

投稿2019/04/26 23:28

siroyama

総合スコア17

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

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

0

有料プラグインゆえに手元に環境を構築できませんので、確認してみる方法を。

PHP

1add_filter( 'mwform_choices_mw-wp-form-41', 'SELECT_LOOP', 10, 2 ); 2function SELECT_LOOP( $children, $atts ) { 3 if ( $atts['name'] == 'entry_date' ) { 4 if( have_rows('entry_date_field','option') ) : 5 while( have_rows('entry_date_field','option') ) : the_row(); 6 $select = get_sub_field('entry_date_field_list'); 7 $children[$select] = $select; 8 $children['while'] = 'while'; // ← 9 endwhile; 10 $children['have_rows'] = 'have_rows'; // ← 11 endif; 12 $children['atts'] = 'atts'; // ← 13 } 14 $children['SELECT_LOOP'] = 'SELECT_LOOP'; // ← 15 return $children; 16}

追加したものがどこまで入っているかによって問題が少し切り分けられると思います。
0. どれも入っていない
'mwform_choices_mw-wp-form-41' がそもそも正しくないかも
(もしくはこのコードを書いたところが読まれていない)
0. 'SELECT_LOOP' のみ
$atts の内容が違うかも
0. 'atts' まで
have_rows('entry_date_field','option') が採れていない
0. 'have_rows' まで
ループの取得に問題があるかも
0. 'while' まで
get_sub_field('entry_date_field_list') に問題があるかも

投稿2017/05/14 16:11

kei344

総合スコア69407

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問