早上的人,
今天早上有一个真正令人头疼的问题,我希望你能帮忙。
我有一个后台切换器插件,在我的Wordpress网站外部。它希望以下列格式提供图像:
["http://www.path/to/image.jpg", "http://www.path/to/image2.jpg"]
我正在使用以下函数将一个字符串从我的站点传递到外部脚本:
<?php
if($page_id == 5) { ?>
<?php
$cat = 62; //category id
$posts = get_posts('showposts=-1&order=ASC&cat='. $cat);
$list = "'";
if ($posts) {
foreach($posts as $post) {
$imgsrc = wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), "Full");
$featuredimgpath = $imgsrc[0];
$list .= '"'.$featuredimgpath.'",';
}
}
$list = substr($list, 0, -1);
$list .= "'";
echo "<script charset='utf-8'>var paths=encodeURIComponent($list);</script>";
?>
接收功能就像这样处理......
paths = decodeURIComponent(paths);
if(jQuery().bgswitcher) {
$(".splash").bgswitcher({
images: [paths], // Background images
effect: "fade", // fade, blind, clip, slide, drop, hide
interval: 4000, // Interval of switching
loop: true, // Loop the switching
shuffle: false, // Shuffle the order of an images
duration: 1500, // Effect duration
easing: "linear" // Effect easing
});
}
结果是所有相关图像的404,尽管控制台日志和警报输出以预期格式显示字符串。
我唯一注意到的是接收脚本使用ASCII / UTF-8字符输出字符串,例如%22替换引号。这就是我使用encodeURI函数但问题仍然存在的原因。
有谁知道我怎么能解决这个问题?或者即使我以错误的方式解决问题?
提前感谢,一如既往! 格雷厄姆
答案 0 :(得分:1)
更改此行:
echo "<script charset='utf-8'>var paths=encodeURIComponent($list);</script>";
到
echo "<script charset='utf-8'>var paths=$list;</script>";
答案 1 :(得分:0)
想出来!我只是直接使用PHP将jQuery打印到页面 - 这完全消除了跨文件编码问题:)