是的,AJAX是一个不错的选择。
基本上,您可以在主题函数中为WP的ajax挂钩编写自己的回调函数。php文件。然后,您的函数可以以您选择的任何格式返回数据。我通常返回JSON。我会带你完成设置。
首先,由于您的访问者似乎没有登录,因此您将在回调函数中使用以下挂钩。
add_action(\'wp_ajax_nopriv_get_images\', \'get_images_callback\');
get_images 是将用于表单/jQuery ajax方法的$\\u POST操作。
接下来,设置ajax来处理请求并返回请求的图像。WordPress已经有了一个处理AJAX的脚本。它被称为admin-ajax.php, 我们post 在下面的示例中。
jQuery(document).ready(function($) {
var params = {
action: \'get_images\',
category: 5,
limit: 20
};
jQuery.post(<?php echo admin_url(\'admin-ajax.php\'); ?>, params, function(response) {
// do your magic!
});
});
(注意:有一种比使用PHP echo语句更好的声明管理员url的方法,但我只是给你一个简单的示例,以便你自己设置。)
最后,编写为其添加操作的回调函数。我们将返回JSON,但您也可以选择返回普通的未编码数据。
function get_images_callback(){
$category = $_POST(\'category\'); //get the requested category
$limit = $_POST(\'limit\'); //get the requested limit
// your WP Query retrieves the appropriate posts/images and stores data to $images
// you might also return the number of images in $num
// and perhaps you\'ll return some other data in $data
header(\'Content-type: application/json\');
print json_encode(array(\'images\' => $images, \'number\' => $num, \'data\' => $data));
die();
}
就在这里。在jQuery函数中,确保正确处理返回的数据。要获取数据,只需如下引用它们:
response.images
,
response.num
, 或
response.data
. 如果图像以数组的形式返回,则必须对其进行迭代以获取数据,就像使用任何其他数组一样。ie。
jQuery.each(response.images,function(key,val){
// do stuff with the values
});
(顺便说一句,即使只有15幅图像,这也是一个加载速度很慢的页面。为什么不加载实际的缩略图,然后在用户选择较大的图像时调用它?…检查你的拇指大小…)