注:これはおそらく簡単な修正ですが、私は配列の使用に不慣れで、完全に困惑しています。
WordPressのOptionsAPIを介してショートコード配列からデータを保存しようとしています。次に、その配列を呼び出し、そのデータを使用して別の配列を作成し、プラグインの関数にフックします。これはレスポンシブスライダープラグインであり、基本的にショートコードを添付しようとしているので、バックエンドでスライダーを作成し、次のようなショートコードでフロントエンドに表示できます[responsive_slider slider_name="imageslider"]
。
実装ドキュメントはここにあり、私のコードは次のとおりです。
function responsive_gallery_shortcode($atts, $content=null) {
extract(shortcode_atts( array('slider_name' => 'product_page') , $atts));
foreach ($slider_name as $value) {
update_option('_unique_slider_name', $value );
}
if(function_exists('show_flexslider_rotator'))
echo show_flexslider_rotator( $slider_name );
add_image_size( $slider_name , '550', '250', true );
}
add_shortcode('responsive_gallery', 'responsive_gallery_shortcode');
if (!function_exists('custom_set_flexslider_hg_rotators')) {
function custom_set_flexslider_hg_rotators() {
$slider_name = get_option('_unique_slider_name');
foreach ($slider_name as $value) {
$rotators = array();
$rotators[ $value ] = array( 'size' => $value );
return $rotators;
}
}
}
add_filter('flexslider_hg_rotators', 'custom_set_flexslider_hg_rotators', 9999);
両方の関数で「foreach()に無効な引数が指定されました」というエラーが発生しforeach
ます。2つのショートコードがあるページでは、両方のエラーが2回表示されます。$slider_name
配列ではなく文字列のように見えますupdate_option()
が、配列を返すように関数に保存する方法が必要です。私はアレイにまったく慣れていないので、ここでは間違いなく苦労しています。私はこれに何時間も費やし、WordPress側ですでに少しの助けを受けていますが、私はそれを完全には得ていません。