如何在WooCommerce后台商品列表添加自定义图片尺寸列并填充内容
如何在WooCommerce后台商品列表添加自定义图片尺寸列并填充内容
嘿,我来帮你搞定这个WooCommerce后台的图片尺寸列问题!你之前的代码已经完成了一半——成功添加了空的列,但缺了填充内容的关键部分,我把完整的可运行代码整理好了,还加了两种常用的尺寸显示方案,你可以按需选择:
完整实现代码
把这段代码放到你的主题(或子主题)的functions.php文件里,或者自定义插件的PHP文件中:
// 1. 给商品列表添加自定义"图片尺寸"列 function add_product_imagesize_column( $columns ) { // 如果你想把新列插到指定位置(比如"价格"列后面),用下面的循环 $new_columns = array(); foreach ( $columns as $key => $value ) { $new_columns[ $key ] = $value; // 遍历到"price"列时插入新列,可根据需求改成其他列的key,比如"title" if ( 'price' === $key ) { $new_columns['imagesize'] = '图片尺寸'; } } return $new_columns; // 如果你不需要指定位置,直接追加到列表末尾,用下面这两行替代上面的循环: // $columns['imagesize'] = '图片尺寸'; // return $columns; } add_filter( 'manage_edit-product_columns', 'add_product_imagesize_column' ); // 2. 填充"图片尺寸"列的内容 function populate_product_imagesize_column( $column, $post_id ) { // 只处理我们的自定义列 if ( 'imagesize' !== $column ) { return; } // 获取当前商品的主图ID $product_featured_img_id = get_post_thumbnail_id( $post_id ); // 如果商品没有设置主图,显示提示文字 if ( ! $product_featured_img_id ) { echo '<em>无主图</em>'; return; } // --- 方案1:显示图片的像素尺寸(宽x高)--- $img_metadata = wp_get_attachment_metadata( $product_featured_img_id ); if ( $img_metadata && isset( $img_metadata['width'], $img_metadata['height'] ) ) { echo $img_metadata['width'] . ' × ' . $img_metadata['height'] . ' px'; } // --- 方案2:显示图片文件的大小(KB/MB)--- // 如果你想显示文件大小而不是像素尺寸,注释掉上面的方案1,打开下面的代码 // $img_file_path = get_attached_file( $product_featured_img_id ); // if ( file_exists( $img_file_path ) ) { // $file_size_bytes = filesize( $img_file_path ); // // 转换为易读的单位 // if ( $file_size_bytes >= 1048576 ) { // echo round( $file_size_bytes / 1048576, 2 ) . ' MB'; // } else { // echo round( $file_size_bytes / 1024, 2 ) . ' KB'; // } // } } add_action( 'manage_product_posts_custom_column', 'populate_product_imagesize_column', 10, 2 );
关键说明
- 列的位置控制:代码里默认把新列插到了“价格”列后面,如果你想换位置,只需要把
'price' === $key里的price改成其他列的key就行,比如'title'(标题列后)、'sku'(SKU列后)。 - 两种显示方案:
- 方案1是显示图片的像素尺寸(比如
800 × 800 px),适合需要把控图片规格的场景; - 方案2是显示图片的文件大小(比如
128.5 KB),适合关注存储空间的场景;
- 方案1是显示图片的像素尺寸(比如
- 注意事项:别直接修改WooCommerce核心文件,用主题/子主题的
functions.php或者自定义插件来加代码,这样主题或插件更新时不会丢失修改。
内容来源于stack exchange
相关产品推荐
相关产品推荐

