如何删除没有缩略图的全部产品

function delete_products_without_featured_image() {
    // Safety check: only run manually
    if ( ! isset( $_GET['delete_no_image_products'] ) ) return;

    $args = [
        'post_type'      => 'product',
        'posts_per_page' => -1,
        'meta_query'     => [
            [
                'key'     => '_thumbnail_id',
                'compare' => 'NOT EXISTS',
            ],
        ],
        'fields' => 'ids',
    ];

    $product_ids = get_posts( $args );

    if ( empty( $product_ids ) ) {
        echo 'No products found without a featured image.';
        return;
    }

    foreach ( $product_ids as $id ) {
        wp_delete_post( $id, true ); // true = force delete, skip trash
    }

    echo 'Deleted ' . count( $product_ids ) . ' products.';
}
add_action( 'admin_notices', 'delete_products_without_featured_image' );

访问网址:https://yoursite.com/wp-admin/?delete_no_image_products=1

用mysql模式

-- Preview first
SELECT p.ID, p.post_title
FROM wp_posts p
LEFT JOIN wp_postmeta pm 
    ON p.ID = pm.post_id AND pm.meta_key = '_thumbnail_id'
WHERE p.post_type = 'product'
  AND p.post_status = 'publish'
  AND pm.meta_id IS NULL;

-- Delete (run after confirming the preview above)
DELETE p, pm
FROM wp_posts p
LEFT JOIN wp_postmeta pm ON p.ID = pm.post_id
WHERE p.post_type = 'product'
  AND p.post_status = 'publish'
  AND NOT EXISTS (
      SELECT 1 FROM wp_postmeta
      WHERE post_id = p.ID AND meta_key = '_thumbnail_id'
  );

×
如何删除没有缩略图的全部产品

如何删除没有缩略图的全部产品

function delete_prod...