是否有可能要求Wordpress查看所有“上传”文件夹,而不仅仅是特定的文件夹?正如您将从下面的脚本中看到的那样,它正在寻找具有相同名称和特定前缀的图像......
'wp-content/uploads/2012/01/'
我希望它像... ...
'wp-content/uploads/*/*/'
就像它一样,它不适用于其他任何东西,例如,如果图像文件有前缀......
'wp-content/uploads/2012/02/'
我的剧本是......
$(document).ready(function(){
$(".gigthumb").each(function() {
var a = $(this).parent();
a.attr("href", a.prev().attr("href"));
});
$('img.gigthumb').each(function(){
var foo = $(this).parent().attr('href').split('/').pop();
$(this).attr('src','wp-content/uploads/2012/01/' + foo + '.jpg');
});
$('img.gigthumb').error(function() {
$(this).attr('src','wp-content/plugins/gigpress/images/placeholder.gif');
});
希望这是有道理的。很难解释这个问题。
答案 0 :(得分:6)
这样做非常麻烦而且速度非常慢。您必须从服务器端提供所有可能的路径,然后使用Ajax请求或其他方式遍历它们。这不是一个好的解决方案。
通过更改Wordpress组织上传的方式,可以更轻松地解决问题。该设置位于设置 - > 媒体:
但是,我不知道如果您在已经上传的现有安装上执行此操作会发生什么。您可能需要重新组织/重新上传所有帖子的内容才能使用此内容(我非常确定WP不会自动重新组织。)使用风险并自行备份。
答案 1 :(得分:0)
我认为这样可以解决问题。 将请求发布到服务器(通过AJAX)。服务器返回所有文件的路径,使用逗号将它们分开,一旦返回客户端,jQuery就会在逗号中分割此数据字符串并将完整路径放入数组中。完成后,您可以简单地遍历数组并为数组的每个元素创建一个图像元素,或者做任何你想做的事情。
PHP文件
<?php
function ListFiles($dir) {
if($dh = opendir($dir)) {
$files = Array();
$inner_files = Array();
while($file = readdir($dh)) {
if($file != "." && $file != ".." && $file[0] != '.') {
if(is_dir($dir . "/" . $file)) {
$inner_files = ListFiles($dir . "/" . $file);
if(is_array($inner_files)) $files = array_merge($files, $inner_files);
} else {
array_push($files, $dir . "/" . $file);
}
}
}
closedir($dh);
return $files;
}
}
foreach (ListFiles('wp-content/uploads') as $key=>$file){
echo $file .",";
}
?>
jQuery的:
$(function(){
$.post("getallfiles.php",{/*post data to server if needed*/}, function(data){
//Splitting with comma expecting it not to be in filenames and directory names.
var uploads = data.split(',');
//uploads[0] would return the first image's path if I'm correct.
})
});
我认为这很有效,但我没有尝试过,你需要做的就是循环上传数组并用imagepath做你想做的事。