在这里使用ajax可能不符合您的最佳利益(只有一个例外,请参见下文)。首先,您将创建对服务器的不必要调用来查询每个图像。其次,结果将无法缓存,尤其是在您发出POST请求的情况下(这不是正确的HTTP方法/动词,因为您没有更改任何内容;在您的示例中,您希望使用GET请求[$.get()
在jQuery中,ajax speak],但我跑题了)。第三,它对用户来说会很慢。
最好是在初始页面调用中循环浏览帖子,并将图像URL输出到javascript数组,或者将帖子数组输出为JSON。您还可以循环并输出<img>
标签,但图像将预先加载,而不是根据请求加载(这是否好取决于站点和图像)。我会选择第一个选项,下面是我如何开始的:
<script type="text/javascript">
var my_images = [
<?php
# Here is where you\'ll loop through your attachments
?>
];
</script>
唯一的例外是,如果您有大量图像,例如每页>100张。在这种情况下,您必须找到适当的平衡,并对成批图像进行ajax调用,将您所问的与我上面所建议的结合起来。
祝你好运
编辑:
再想一想,我要做的是输出一个指向图像的链接列表,标题作为链接文本,然后使用JS读取,设置幻灯片,并按需动态加载图像(链接标签的href)。这与JS数组没有什么不同,只是数据存储在HTML中。因为它是HTML格式的,所以它具有一些明显的优势:禁用JS的浏览器仍然能够访问照片,您将拥有图像的标题,不处理JS的搜索引擎爬行器仍然会为图像编制索引,并且爬行器也会读取您希望的关键字丰富的图像标题。这是你如何设置的,部分是从
the codex:
<ul>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
$attachments = get_posts( array(
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
\'post_status\' => null,
\'post_parent\' => $post->ID
) );
if ( $attachments ) foreach ( $attachments as $attachment ) : ?>
<li><a href="<?php echo wp_get_attachment_url( $attachment->ID ); ?>"><?php echo apply_filters( \'the_title\', $attachment->post_title ); ?></a></li>
<?php endforeach; ?>
</ul>