对于产品,我设置了几个自定义属性,其中有images
,它可以有多个由|
分隔的图像。你可以看看Here。产品通过woocommerce API插入。但问题是负责在前端显示图像的特色图像没有填满。因此,我需要从images
属性中获取第一张图像,并将其设置为特色图像。由于它们已经是现有的产品,所以我尝试通过下面的代码实现,并将其添加到我的functions.php
中。但是没有用
function update_existing_products_featured_image() {
$attribute_name = 'images';
// Get all published simple products
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'fields' => 'ids',
'post_status' => 'publish',
);
$product_ids = get_posts($args);
foreach ($product_ids as $product_id) {
// Get the custom attribute value for the product
$attribute_value = get_post_meta($product_id, '_' . $attribute_name, true);
// Check if the attribute value contains '|' to separate images
if ($attribute_value && strpos($attribute_value, '|') !== false) {
// Explode the attribute value to get an array of image URLs
$image_urls = explode('|', $attribute_value);
// Get the first image URL from the array
$first_image_url = trim($image_urls[0]);
// Check if the first image URL is valid
if (filter_var($first_image_url, FILTER_VALIDATE_URL)) {
// Download the image and set it as the featured image
$image_id = media_sideload_image($first_image_url, $product_id, '', 'id');
set_post_thumbnail($product_id, $image_id);
}
}
}
}
update_existing_products_featured_image();
字符串
对此有何建议?
2条答案
按热度按时间ev7lccsx1#
经过多次挖掘,我在woocommerce中使用
add_filter
钩子解决了它字符串
这里我设置了img src而不是将其设置为特色图像......对于我的用例来说效果很好。
gstyhher2#
我有一个类似的解决方案……如果我找到了解决办法,我会在这里与大家分享。