当前位置: 首页 > 知识库问答 >
问题:

WordPress自定义single-product.php:如何

漆雕彬彬
2023-03-14

我正在另一个开发者创建的WordPress网站上工作,由于WordPress的更新,自定义主题在某些地方被破坏了。我已经设法解决了大多数问题,但这一个让我感到困惑,主要是因为我不确定它最初是如何工作的!我对PHP和WordPress相当陌生,我的大部分经验都是在HTML/CSS中。。。无论如何,我已经修改了这段代码来解决一些问题,并且它在live站点上的当前状态是:

<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 } ?>
        

有一个主产品图像和一些缩略图,单击缩略图可更改主产品图像。

有几个问题。

  1. WordPress中使用srcset的新响应图像功能打破了主图像在单击拇指时发生变化的功能,它继续显示主图像。当检查结果时,我可以看到img src正在按预期进行更改,但srcset继续显示原始结果。如果禁用响应图像,则该功能将正常工作。

我试图通过更改

因此,在我试图找到解决方案的本地机器上,它现在看起来是这样的:

<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>

问题是,我不确定最初的代码是如何导致主图像发生变化的,所以我不确定如何修复它。例如,什么是

有人能给我解释一下当点击缩略图时原始代码是如何改变主图像的,如果可能的话,还有关于如何修复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版本。

编辑:我现在在现场网站上有了几乎正常工作的代码,并禁用了响应图像。我想让这些反应灵敏的图像发挥作用,但除非有人能帮我,否则我想我必须承认失败,就此罢休!


共有1个答案

董昕
2023-03-14

我不确定是否有javascript做了一些奇特的事情来让它工作,但这里有一个代码片段,可以帮助您了解如何使用WP 4.4中的响应图像,这些图像取自make.wordpress.org

<?php
$img_src = wp_get_attachment_image_url( $attachment_id, 'medium' );
$img_srcset = wp_get_attachment_image_srcset( $attachment_id, 'medium' );
?>
<img src="<?php echo esc_url( $img_src ); ?>"
     srcset="<?php echo esc_attr( $img_srcset ); ?>"
     sizes="(max-width: 50em) 87vw, 680px" alt="A rad wolf">

注意:您可以将“中”更改为其他wordpress默认大小,如“小”、“中”、“大”、“满”或在functions.php中自行设置自定义大小

注2:控制响应如何工作的主要因素是“大小”属性,该属性指定以何种宽度显示什么。更多信息可以在本教程中找到

 类似资料:
  • 我是wordpress的新手。谁能给我推荐wordpress教程,帮助我从头定制一个主题,以及如何在该主题中创建模板文件。我在谷歌上搜索过,但没有找到好的教程。 提前感谢

  • 我创建了一个自定义超文本标记语言归档博客页面,我想在其中放置WordPress帖子。自定义页面有几个不同的布局,因此在帖子中循环只是重新生成我试图避免的整个页面。我想做的是循环通过每个帖子,然后将该帖子放在相关的档案中。 因此,第1列进入第1列第1列,第2列进入第2列第1列,第3列进入第2列第2列,第4列进入第2列第3列,以此类推。。。 如果这是不可能的,有没有一种方法,我可以有一个代码块,例如,

  • 我是新来的wordpress, im创建一个自定义职位与字段的custom_meta_box(位置,着装) 所以在我的自定义帖子列表中,我想查看我在custom_meta_box上创造的价值。 这是我目前的代码:

  • 因此,我一直在努力研究如何构建一种方法,使用用户输入过滤大量wordpress帖子。我不太确定我是否理解如何让它发挥作用。我会简单地解释我目前所知道的,也许有人能给我指出正确的方向。 所以我知道我可以使用wp_query($args)函数来查询我的数据库,并将我想要的过滤参数传递给它,以获得我想要的结果。现在,因为它必须由用户完成,我想我可以添加一个html表单,这样做 然后我写了如下的php代码

  • 我想向Wordpress中的现有页面添加一些额外的表单字段。每当您编辑帖子或页面时,此页面都会被重定向。我的问题是我不知道在哪里找到这个文件或者它的名字。 我需要知道我需要编辑什么文件才能添加新的输入。 只有当您是管理员并登录到仪表板时,才会看到此页面。 我使用wordpress边缘洗牌主题。

  • 我正在尝试自定义wordpress主页,确切地说,是_content()函数。我尝试使用的网站是http://sportsponsorizzazioni.com/ 如果在关于“loop”的文件中,我使用函数“the_content()”,它会在主页上为我提供一个完整文章的列表,其中包括我在文章正文中包含的图像和我想要的格式的文本。以另一种方式使用函数“the_extract()”,只显示摘录文本,