我正在开发由另一位开发人员创建的 WordPress 网站,并且由于 WordPress 更新,自定义主题在某些地方已经损坏。我已经设法解决了大多数问题,但这个问题让我很困惑,主要是因为我不确定它最初是如何工作的!我对 PHP 和 WordPress 还很陌生,我的大部分经验都是在 HTML/CSS 中......无论如何,我已经不得不修改这段代码来解决一些问题,它在现场网站上的当前状态是:
<div class="full rounded-corners" >
<!-- first image is viewable to start -->
<?php echo the_post_thumbnail(); ?>
</div>
<div class="previews">
<?php
global $wpdb;
$attachment_ids = $product->get_gallery_attachment_ids();
foreach ($attachment_ids as $attachment_id) {
$sql = "SELECT guid FROM wp_1posts WHERE ID = " . $attachment_id;
$row = $wpdb->get_row($sql);
?>
<a data-full="<?php echo $row->guid; ?>"><img src="<?php echo $row->guid; ?>" width="56" height="58" /></a>
<?php } ?>
有一个主产品图像和一些缩略图,单击缩略图会更改主产品图像。
有几个问题。
- WordPress 中使用 srcset 的新响应式图像功能破坏了单击拇指时主图像更改的功能,它继续显示主图像。检查结果时,我可以看到 img src 正在按预期更改,但 srcset 继续显示原始内容。如果禁用响应式图像,它可以工作。
- 此代码提取导致加载问题的图像的最大版本。
我试图通过将 更改为<?php echo $row->guid;?>
来解决第二个问题<?php echo wp_get_attachment_image($attachment_id, 'thumbnail');?>
。这会按预期加载拇指,所以我认为这是一个可行的解决方案,但这给我留下了主图像没有改变的问题(除非禁用响应图像)。
所以在我试图找到解决方案的本地机器上,它现在看起来像这样:
<div class="full rounded-corners" >
<!-- first image is viewable to start -->
<?php echo the_post_thumbnail(); ?>
</div>
<div class="previews">
<?php
global $product;
$attachment_ids = $product->get_gallery_attachment_ids();
foreach( $attachment_ids as $attachment_id ) {
?>
<a data-full="<?php echo wp_get_attachment_url( $attachment_id ); ?>"> <img src="<?php echo wp_get_attachment_url( $attachment_id ); ?>" style="height:60px; width:auto;"></a>
<?php }
?>
</div>
</div>
问题是,我不确定原始代码是如何导致主图像发生变化的,所以我不确定如何修复它。例如<a data-full=
……在做什么??编辑:认为我发现数据完整更改了带有“完整”类的主图片,对吗?
有人可以向我解释单击缩略图时原始代码如何更改主图像,如果可能的话,有任何关于如何解决 srcset 问题的提示吗?
单击拇指后检查主图像时:
<img style="display: inline;" src="http://localhost/MooreRiverWP/wordpress/wp-content/uploads/2015/07/View-to-Ocean.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="8 Harris Street" srcset="http://localhost/MooreRiverWP/wordpress/wp-content/uploads/2015/07/8-Harris-Street-200x133.jpeg 200w, http://localhost/MooreRiverWP/wordpress/wp-content/uploads/2015/07/8-Harris-Street.jpeg 314w" sizes="(max-width: 314px) 100vw, 314px" height="209" width="314">
src 正确,srcset 不正确,图片显示的是 srcset 版本。
编辑: 我现在在实时站点上有几乎可以工作的代码,但禁用了响应式图像。我想让响应式图像正常工作,但除非有人能提供帮助,否则我想我将不得不承认失败并就此罢手!