这种结构有点奇怪。但你的主要问题是wp_enqueue_scripts
在调用之前运行操作gps_slider()
可能发生。将脚本本地化挂钩到wp_footer
操作,因此页面中的幻灯片显示数据已经存在并已输出。此外,您还必须将幻灯片数据设置为一组数组,以便可以分别传递每个数组的设置。
$data = array();
$data[$name] = array(
\'gpsslidermode\' => $slider_mode,
\'gpssliderspeed\' => $slider_speed
);
wp_localize_script(\'gps-slider_script\', \'gpsslidersettings\', $data);
此外,为什么不将选项表用于幻灯片放映数据,并将其键入幻灯片放映ID?除了为自己创建更多的工作之外,您似乎没有对无法用内置核心表复制的自定义表执行任何操作。至少只需将所有幻灯片元保存在序列化数组中的一行中,并从每个幻灯片加载中剪切8个数据库查询。
EDIT-
function gps_slider( $slideshow = \'\' ) {
include(\'lib/gps-slider-output.php\');
global $slideshows;
$slideshows[$slideshow] = array(
// fetch and insert your settings data here
\'gpsslidermode\' => $slider_mode,
\'gpssliderspeed\' => $slider_speed,
// etc..
);
}
function gps_slider_localize(){
global $slideshows;
wp_localize_script(\'gps-slider_script\', \'gpsslidersettings\', $slideshows);
}
add_action( \'wp_footer\', \'gps_slider_localize\' );