移动wordpress与woocommerce:get_gallery_attachment_ids()拇指没有显示

时间:2015-11-17 02:44:12

标签: php mysql wordpress image wordpress-plugin

我试图将一个Wordpress网站(目前由一个外国的,很难与Web开发公司打交道)移动到另一台服务器上,然后再关闭它们。我可以访问wp-admin但没有cpanel或ftp,并且有内存限制阻止我使用完整的复制/迁移插件。

我的大多数常规工作都是HTML / CSS,而且我对SQL和PHP的经验很少,但我已经成功地将这些网站复制成碎片并在我的本地机器上重新组装。除了一个我无法解决的琐碎问题之外,它的功能正如预期的那样。

woocommerce产品页面按预期显示主图像,但产品图库的标记显示为空; view image

应该呈现图像的代码是:

<!-- first image is viewable to start -->
<?php echo the_post_thumbnail(); ?> </div>
<div class="previews">
       <?php 
       $attachment_ids = $product->get_gallery_attachment_ids();
       foreach ( $attachment_ids as $attachment_id ) {
          $sql="select guid from wp_posts where ID=".$attachment_id;
          $row=mysql_fetch_object(mysql_query($sql));
       ?>
      <a data-full="<?php echo $row->guid;?>"><img src="<?php echo $row->guid;?>" width="56" height="58" /></a>
       <?php }
       ?>
        </div>

当我查看页面源时,img src实际上是空的;

<a data-full=""><img src="" width="56" height="58" /></a>
<a data-full=""><img src="" width="56" height="58" /></a>
<a data-full=""><img src="" width="56" height="58" /></a>
<a data-full=""><img src="" width="56" height="58" /></a>
<a data-full=""><img src="" width="56" height="58" /></a>

不幸的是,我对SQL很无能为力,我认为这是问题的根源?相同的代码在原始网站上运行良好,原始网站已经完全复制(理论上),并且应该显示的图像出现在&#34;产品库中#34;编辑产品时的面板。添加新图像会导致同样的问题。网站上的其他图片似乎工作正常。

对于可能发生的事情以及如何纠正此错误的任何建议将不胜感激!

已编辑添加:screencap of product edit page, shows the thumbnails that should be displayed

更新

我插入了以下代码

<?php
          global $product;
         $attachment_ids = $product->get_gallery_attachment_ids();

        foreach( $attachment_ids as $attachment_id ) 
        {
          echo $image_link = wp_get_attachment_image( $attachment_id  );
        }
        ?>

显示了预期的图像。然而,这不是一个解决方案,因为图像需要在点击时更改主显示图像。

更新2:

我已降级WP以匹配原始网站,现在在空图像上方收到此错误:

警告:mysql_fetch_object():提供的参数不是C:\ xampp \ htdocs中有效的MySQL结果资源... \ themes \ branchy \ woocommerce \ single-product.php

在上面粘贴的代码中。

更新3:

在原始网站上升级了wordpress(幸运的是它还没有消失),图像仍能在那里正常工作

1 个答案:

答案 0 :(得分:1)

好的,我不确定为什么问题首先发生但可能无法连接到数据库?

注意到原始代码中使用的mysql api已被折旧,我使用mysqli重建了这段代码。

经过一些困难后,我设法弄清楚如何使用$ wpdb而不是将连接字符串放入代码中(主要归功于this article

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

主要是,它正在工作!

感谢@Shawn帮助我解决问题:)