我正在自定义一个客户端主题,他让我这样做:当用户单击索引和归档上的帖子缩略图时,大尺寸的帖子缩略图会显示在一个灯箱中。因此,我使用以下方法获得了大尺寸的帖子缩略图:
<?php $page_id = get_queried_object_id(); ?>
<?php $thumbs_array = wp_get_attachment_image_src( get_post_thumbnail_id($page_id), \'large\' ); ?>
<?php $large_thumb = $thumbs_array[0]; ?>
然后把
$large_thumb 相应标记上的值为
data-*, 例如:
<div class="img lightbox-trigger" data-large-thumb="<?php echo $large_thumb ?>">
<?php the_post_thumbnail(\'thumbnail\'); ?>
</div><!-- .img .lightbox-trigger -->
我使用jQuery片段在一个lightbox中展示了这一点。
现在在索引上,所有的东西都工作得很好,很完美。但当我检查归档页面时,它并没有正常工作。我检查生成的源并看到data-large-thumb 上的存档文件为空!,索引上的位置data-large-thumb 包含缩略图的大尺寸地址。
奇怪的是,需要使用get_template_part. 我是说当我检查的时候index.php 和archive.php 两者都有
<?php get_template_part( \'col-h\' );?>
从同一文件加载代码,但该文件返回
index 什么都没有
archive, 当我
var_dump($large_thumb) 它是
NULL. 我觉得这很奇怪!
在上生成的结果index.php:
<div class="img lightbox-trigger" data-large-thumb="http://example.com/wp-content/uploads/2016/12/Desert-1024x768.jpg">
<img src="http://example.com/wp-content/uploads/2016/12/Desert-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" width="150" height="150">
</div>
和上
archive.php:
<div class="img lightbox-trigger" data-large-thumb="">
<img src="http://example.com/wp-content/uploads/2016/12/Desert-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" width="150" height="150">
</div>
UpdateI var\\u转储了这3个相关变量,以了解它们返回的结果。索引上:
$page_id returns 0
$thumbs_array return correct array containing url, width, height, etc
$large_thumb returns url of large thumbnail
一切都很顺利
index. 但在
archive 页码:
$page id returns proper value; 2, 3, 8, 10 or whatever the ID is
$thumbs_array returns `bool(false)`
$large_thumb returns`NULL`
所以问题似乎与
wp_get_attachment_image_src 不幸的是,这在存档上不起作用。有没有其他我应该使用的WP功能?为什么返回False?
我错过了什么?
如果需要其他信息来解决这个问题,请告诉我。
谢谢