我正在自定义一个客户端主题,他让我这样做:当用户单击索引和归档上的帖子缩略图时,大尺寸的帖子缩略图会显示在一个灯箱中。因此,我使用以下方法获得了大尺寸的帖子缩略图:
<?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?
我错过了什么?
如果需要其他信息来解决这个问题,请告诉我。
谢谢