如何解决WC_Product::get_gallery_attachment_ids已弃用的通知问题?
解决WooCommerce产品图库代码的弃用通知问题
当你在WordPress中设置define('WP_DEBUG', true);开启调试模式后,运行以下产品图库相关的PHP代码时:
<div class="col-md-5 col-sm-5 mb-xs-30"><?php // echo single_product_summary_sale_flash();?> <div class="fotorama" data-nav="thumbs" data-allowfullscreen="native"> <a href="#"> <?php the_post_thumbnail(); ?> </a> <?php global $product; $attachment_ids = $product->get_gallery_attachment_ids(); foreach( $attachment_ids as $attachment_id ) { $image_link = wp_get_attachment_url( $attachment_id ); ?> <a href="#"><img src="<?php echo $image_link;?>" alt="Xpent Super Shop "></a> <?php } ?> </div> </div>
会收到这样的调试通知:
Notice: WC_Product::get_gallery_attachment_ids is deprecated since version 3.0! Use WC_Product::get_gallery_image_ids instead. in D:\XAMPP\htdocs\wp\woocom\wp-includes\functions.php on line 3839
别担心,这个问题很好解决!原因很明确:WooCommerce从3.0版本开始正式弃用了WC_Product::get_gallery_attachment_ids()方法,官方推荐用WC_Product::get_gallery_image_ids()来替代,两者功能完全一致,只是函数名做了更新。
你只需要修改代码中获取图库ID的那一行:
把
$attachment_ids = $product->get_gallery_attachment_ids();
替换成
$attachment_ids = $product->get_gallery_image_ids();
修改后的完整代码如下:
<div class="col-md-5 col-sm-5 mb-xs-30"><?php // echo single_product_summary_sale_flash();?> <div class="fotorama" data-nav="thumbs" data-allowfullscreen="native"> <a href="#"> <?php the_post_thumbnail(); ?> </a> <?php global $product; $attachment_ids = $product->get_gallery_image_ids(); foreach( $attachment_ids as $attachment_id ) { $image_link = wp_get_attachment_url( $attachment_id ); ?> <a href="#"><img src="<?php echo $image_link;?>" alt="Xpent Super Shop "></a> <?php } ?> </div> </div>
替换完成后刷新页面,那个弃用通知就会消失啦。另外如果你的WooCommerce版本比较新,建议尽量使用官方推荐的最新函数,避免后续版本可能出现的兼容性问题。
内容的提问来源于stack exchange,提问作者Mamunur Rashid
相关产品推荐
相关产品推荐

