質問: 「Smart Custom Fields」というプラグインを使っています。 シンプルで分かりやすいプラグインなのですが、 どうしてもショートコードを呼び出せません。 繰り返すときに、最初のフィールドの値しか 繰り返してくれなかったりするんです。( ́;ω;`) ちなみにポイントは4つあります。 1フィールドを繰り返して使う。 21つのフィールドに複数のショートコードを入れる。 3ショートコード以外を書くこともある。 4ulとliでくくるもの(cf_shortcode2~3)と、普通に使うもの(cf_shortcode1)がある。 というわけで、いちおう下記に2つ という感じのものを書いておきますので、 僭越ながらヒントにしていただければ幸いでございます。 ``` $field_value ) { ?> ID, 'cf_shortcode1', true)); ?> ID, 'cf_shortcode2', true)); ?> ID, 'cf_shortcode3', true)); ?> ID, 'cf_shortcode4', true)); ?> ``` ``` ``` 今回のプラグインだけで使われるらしい 「SCF::getという関数」があったりと、 少し分かりにくいかと思いますが、 どなたかもしお詳しい方がいらっしゃいましたら ご教示いただければ幸いです。 よろしくお願いいたします。 --- 追記します。 WordPressのデバックモードで表示されたエラーです。 尚、10回読み込むと10回とも表示メッセージが違ってちょっと意味不明すぎたので、それぞれ1つずるだけにしました。 いずれの場合も冒頭にデータベースエラーとあるのですが、コードはあっているのでしょうか? というか、同じこと書いているのに、読み込みのたびにエラー表示が違うのはなんでなのでしょうか?それってふつうなのですか? ■■■■ ■質問文にある ■( 最初の値しか繰り返してくれないバージョン) ■のときのデバックモードの表示エラー ■■■■ WordPress データベースエラー: [Error on rename of '.\wordpress_dev_test\#sql-1fd4_43.frm' to '.\wordpress_dev_test\srm_users.frm' (Errcode: 13 - Permission denied)] ALTER TABLE srm_users CHANGE COLUMN email email VARCHAR(255) ■■■■ ■最初のご回答でご教示いただいた方法 ■foreach ( $group_set as $field_name => $field_value ) { ■のときのデバックモードの表示エラー ■■■■ WordPress データベースエラー: [Error on rename of '.\wordpress_dev_test\#sql-1fd4_41.frm' to '.\wordpress_dev_test\srm_container.frm' (Errcode: 13 - Permission denied)] ALTER TABLE srm_container CHANGE COLUMN anonymous anonymous BOOLEAN ■■■■ ■2回目のご回答でご教示いただいた方法 ■foreach ( $repeat_group as $fields ) { ■のときのデバックモードの表示エラー ■■■■ WordPress データベースエラー: [Error on rename of '.\wordpress_dev_test\#sql-1fd4_3e.frm' to '.\wordpress_dev_test\srm_reviews.frm' (Errcode: 13 - Permission denied)] ALTER TABLE srm_reviews CHANGE COLUMN created created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
回答: もう解決されているかもしれませんが、下記のようにしてみてはいかがでしょうか。 ``` $group_set = SCF::get( 'repeat-group' ); foreach ( $group_set as $fields ) { $cf_shortcode1 = apply_filters( 'the_content', $fields[ 'cf_shortcode1' ] ); $cf_shortcode2 = apply_filters( 'the_content', $fields[ 'cf_shortcode2' ] ); $cf_shortcode3 = apply_filters( 'the_content', $fields[ 'cf_shortcode3' ] ); $cf_shortcode4 = apply_filters( 'the_content', $fields[ 'cf_shortcode4' ] ); echo $cf_shortcode1; ?>