Export Elementor images

Alle images van je Elementor paginas exporteren

Vaak heb je veel afbeeldingen in je media library staan die nergens in paginas worden gebruikt. Opschonenen met een plugin als media cleaner kan tricky zijn omdat deze achtergrondafbeeldingen in containers niet meeneemt (wel in de PRO versie). Dus een handige truc om alleen de images uit je pagina’s te exporteren is mbv een script.

Maak een php file aan; bijv. export-elementor-images.php. Zet deze in je public html folder, dus de root van je website. open het file via de url https://jouwdomein.nl/export-elementor-images.php

Let op: deze code is voor Elementor images om te exporteren. Er worden alleen images geexporteerd uit je elementor pagina’s. Dus niet uit berichten, en ook geen SVG images. Hieronder de code om ALLE images uit je WordPress downloaden.

<?php
// Bestand: export-elementor-images.php
ini_set(‘display_errors’, 1);
error_reporting(E_ALL);
require_once(‘wp-load.php’); // Zorg dat dit pad klopt vanaf je locatie
function export_elementor_images() {
    global $wpdb;
    $upload_dir = wp_upload_dir();
    $export_dir = $upload_dir[‘basedir’] . ‘/elementor-export’;
    $zip_file   = $export_dir . ‘/elementor-images.zip’;
    if (!file_exists($export_dir)) {
        mkdir($export_dir, 0755, true);
    }
    // Haal alle pagina’s met Elementor-data op
    $posts = $wpdb->get_results(“
        SELECT ID
        FROM {$wpdb->posts}
        WHERE post_type = ‘page’
        AND post_status = ‘publish’
    “);
    $image_urls = [];
    foreach ($posts as $post) {
        $meta = get_post_meta($post->ID, ‘_elementor_data’, true);
        if ($meta) {
            // Elementor-data is vaak JSON
            $data = is_string($meta) ? json_decode($meta, true) : $meta;
            if (is_array($data)) {
                // Doorloop alle data en zoek afbeeldingslinks
                array_walk_recursive($data, function($value, $key) use (&$image_urls) {
                    if (filter_var($value, FILTER_VALIDATE_URL) && preg_match(‘/\.(jpg|jpeg|png|gif|webp)$/i’, $value)) {
                        $image_urls[] = $value;
                    }
                });
            }
        }
    }
    $image_urls = array_unique($image_urls);
    if (empty($image_urls)) {
        echo “Geen Elementor-afbeeldingen gevonden.”;
        return;
    }
    // Zet afbeeldingen in een zipbestand
    $zip = new ZipArchive();
    if ($zip->open($zip_file, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) {
        echo “Kan zipbestand niet aanmaken.”;
        return;
    }
    foreach ($image_urls as $url) {
        $local_path = str_replace($upload_dir[‘baseurl’], $upload_dir[‘basedir’], $url);
        if (file_exists($local_path)) {
            $zip->addFile($local_path, basename($local_path));
        }
    }
    $zip->close();
    echo “Export voltooid. Bestand opgeslagen als: <a href='” . $upload_dir[‘baseurl’] . “/elementor-export/elementor-images.zip’>Download ZIP</a>”;
}
export_elementor_images();
?>
Alle images van je media bibliotheek exporteren

Maak een php file aan; export-all-images.php

Zet deze in je public html folder, dus de root van je website. open het file via de url https://jouwdomein.nl/export-all-images.php

<?php
// Bestand: export-all-images.php
ini_set(‘display_errors’, 1);
error_reporting(E_ALL);

require_once(‘wp-load.php’); // Zorg dat dit pad klopt

function export_all_images() {
$upload_dir = wp_upload_dir();
$export_dir = $upload_dir[‘basedir’] . ‘/export’;
$zip_file = $export_dir . ‘/all-images.zip’;

// Maak exportmap als die niet bestaat
if (!file_exists($export_dir)) {
mkdir($export_dir, 0755, true);
}

$args = [
‘post_type’ => ‘attachment’,
‘post_mime_type’ => ‘image’,
‘post_status’ => ‘inherit’,
‘posts_per_page’ => -1,
‘fields’ => ‘ids’
];

$images = get_posts($args);

if (empty($images)) {
echo “Geen afbeeldingen gevonden.”;
return;
}

$zip = new ZipArchive();
if ($zip->open($zip_file, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) {
echo “Kan zipbestand niet aanmaken.”;
return;
}

foreach ($images as $image_id) {
$path = get_attached_file($image_id); // Volledig pad op de server
if (file_exists($path)) {
$relative_name = str_replace($upload_dir[‘basedir’] . ‘/’, ”, $path);
$zip->addFile($path, $relative_name);
}
}

$zip->close();

echo “Export voltooid. Bestand opgeslagen als: <a href='” . $upload_dir[‘baseurl’] . “/export/all-images.zip’>Download ZIP</a>”;
}

export_all_images();
?>