Met deze gratis tool voeg je een extra menu-optie toe in je WordPress-dashboard:
Media → Large Images (of Grote afbeeldingen, afhankelijk van je taalinstellingen).
Op deze pagina zie je in één overzicht welke afbeeldingen in je mediabibliotheek de grootste zijn qua bestandsgrootte. Ideaal om snel opslagruimte vrij te maken en te beoordelen welke bestanden je eventueel kunt verkleinen, vervangen of verwijderen.
Zolang je de snippet geactiveerd laat via een plugin als WPCode of Code Snippets, blijft deze optie beschikbaar. Ben je klaar met opschonen, dan kun je de snippet eenvoudig weer deactiveren.
⚡ Wat doet deze tool?
Voegt een extra submenu toe onder Media → Large Images
Toont per afbeelding:
een kleine preview
bestandsnaam en upload-datum
afmetingen in pixels
bestandsgrootte in KB of MB
Sorteert de getoonde afbeeldingen binnen de huidige batch op bestandsgrootte, grootste eerst
Laat je meerdere afbeeldingen aanvinken en in één keer naar de prullenbak verplaatsen
Bevat een selecteer-alles vakje om snel een volledige batch te selecteren
⚠️ Waar moet je rekening mee houden?
Maak altijd eerst een backup van je site (bestanden en database) voordat je mediabestanden gaat verwijderen
Deze tool kijkt alleen naar bestandsgrootte, niet of een afbeelding nog ergens wordt gebruikt op de site
Controleer dus zelf of een afbeelding nog in pagina’s, blogberichten, sliders, templates of e-mails wordt gebruikt voordat je hem verwijdert
Verwijderen gebeurt altijd via de WordPress-prullenbak voor media
Staat er toch iets tussen dat je nog nodig hebt, dan kun je het achteraf vanuit de mediabibliotheek herstellen
Om je site en server soepel te houden:
per pagina wordt maar een beperkt aantal afbeeldingen opgehaald
per actie wordt maar een beperkt aantal geselecteerde afbeeldingen tegelijk naar de prullenbak verplaatst
Dit verkleint de kans op timeouts en vastlopers, ook op grotere sites
⚡ Wanneer draait de code?
De zware logica van deze tool wordt alleen uitgevoerd wanneer jij (of een andere beheerder) de pagina Media → Large Images in het WordPress-dashboard opent.
Op de voorkant van je site (frontend) draait deze snippet niet.
Ook op andere admin-pagina’s, zoals Berichten, Pagina’s of Instellingen, wordt de eigen logica van de tool niet aangeroepen. Er wordt daar alleen een klein stukje code gebruikt om het menu-item te registreren, wat verwaarloosbaar licht is.
Dat betekent dat je bezoekers er niets van merken en dat je site niet trager wordt. Alleen wanneer jij bewust de Large Images-pagina opent, wordt er een batch afbeeldingen opgehaald, geanalyseerd en optioneel naar de prullenbak verplaatst.
📋 Installatie
Kopieer de volledige PHP-code van de snippet
Plaats de code in een snippet-plugin zoals WPCode of Code Snippets
Stel de snippet in op Run Everywhere (of admin-only, als die optie beschikbaar is) en activeer hem
In je WordPress-dashboard verschijnt nu een nieuwe optie Media → Large Images
Open deze pagina, controleer de grootste afbeeldingen, vink aan wat je wilt opruimen en klik op Move selected to Trash om ze veilig naar de mediaprullenbak te verplaatsen
/**
* Plugin Name: Large Images Inspector (Safe & Simple)
* Description: Laat de grootste afbeeldingsbijlagen zien en verplaats geselecteerde items veilig naar de prullenbak.
* Version: 1.0.0
* Author: ChatGPT
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Admin-pagina onder Media.
*/
add_action( 'admin_menu', function () {
add_media_page(
__( 'Large Images Inspector', 'large-images-inspector' ),
__( 'Large Images', 'large-images-inspector' ),
'manage_options',
'large-images-inspector',
'lii_render_admin_page'
);
} );
/**
* Render de adminpagina.
*/
function lii_render_admin_page() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( esc_html__( 'You do not have permission to access this page.', 'large-images-inspector' ) );
}
$limit = (int) apply_filters( 'lii_scan_limit', 40 );
$limit = $limit > 0 ? $limit : 40;
$current_page = isset( $_GET['lii_page'] ) ? (int) $_GET['lii_page'] : 1;
if ( $current_page < 1 ) {
$current_page = 1;
}
$offset = ( $current_page - 1 ) * $limit;
$message = '';
/**
* Verwijder geselecteerde afbeeldingen (naar prullenbak).
*/
if (
isset( $_POST['lii_trash_selected'], $_POST['lii_media_ids'] )
&& is_array( $_POST['lii_media_ids'] )
&& ! empty( $_POST['lii_media_ids'] )
) {
check_admin_referer( 'lii_trash_large_images' );
$max_per_request = (int) apply_filters( 'lii_max_delete_per_request', 25 );
$max_per_request = $max_per_request > 0 ? $max_per_request : 25;
$ids_raw = wp_unslash( $_POST['lii_media_ids'] );
$total_selected = count( $ids_raw );
$ids_raw = array_slice( $ids_raw, 0, $max_per_request );
$trashed = 0;
if ( function_exists( 'set_time_limit' ) ) {
@set_time_limit( 300 );
}
foreach ( $ids_raw as $raw_id ) {
$attachment_id = (int) $raw_id;
if ( $attachment_id <= 0 ) {
continue;
}
if ( ! current_user_can( 'delete_post', $attachment_id ) ) {
continue;
}
$attachment = get_post( $attachment_id );
if ( ! $attachment || 'attachment' !== $attachment->post_type ) {
continue;
}
$result = wp_delete_attachment( $attachment_id, false ); // naar prullenbak
if ( $result ) {
$trashed++;
}
}
if ( $trashed ) {
$message = sprintf(
_n(
'%d attachment moved to the trash.',
'%d attachments moved to the trash.',
$trashed,
'large-images-inspector'
),
$trashed
);
if ( $total_selected > $max_per_request ) {
$message .= ' ' . sprintf(
esc_html__( '(Only the first %1$d of %2$d selected items were processed to keep things fast. Run again for the rest.)', 'large-images-inspector' ),
$max_per_request,
$total_selected
);
}
} else {
$message = esc_html__( 'No attachments were moved to the trash.', 'large-images-inspector' );
}
}
// Haal een batch images op.
$attachments = lii_get_image_attachments_batch( $limit, $offset );
// Verrijk met file info en sorteer op bestandsgrootte (grootste eerst).
$files = array();
foreach ( $attachments as $attachment ) {
$info = lii_describe_attachment_file( $attachment->ID );
// Als er geen bruikbaar pad is, overslaan.
if ( empty( $info['path'] ) || '-' === $info['size_bytes'] ) {
continue;
}
$files[] = array(
'id' => $attachment->ID,
'title' => $attachment->post_title,
'url' => wp_get_attachment_url( $attachment->ID ),
'path' => $info['path'],
'size' => $info['size'],
'size_bytes' => $info['size_bytes'],
'dimensions' => $info['dimensions'],
'date' => $attachment->post_date,
);
}
// Sorteer binnen deze batch op grootte.
usort(
$files,
function ( $a, $b ) {
if ( $a['size_bytes'] === $b['size_bytes'] ) {
return 0;
}
return ( $a['size_bytes'] < $b['size_bytes'] ) ? 1 : -1; // grootste eerst
}
);
echo '';
echo '' . esc_html__( 'Large Images Inspector', 'large-images-inspector' ) . '
';
echo '' . esc_html__( 'This tool lists your largest image attachments so you can review and clean them up safely. Selected files are moved to the media trash.', 'large-images-inspector' ) . '
';
echo '' . esc_html(
sprintf(
__( 'Showing up to %1$d images from batch %2$d (ordered by upload date, then sorted by file size in this batch).', 'large-images-inspector' ),
$limit,
$current_page
)
) . '
';
if ( $message ) {
echo '' . esc_html( $message ) . '
';
}
if ( empty( $files ) ) {
echo '' . esc_html__( 'No images found in this batch.', 'large-images-inspector' ) . '
';
lii_render_pagination( $current_page, count( $attachments ), $limit );
echo '';
return;
}
echo ' ';
lii_render_pagination( $current_page, count( $attachments ), $limit );
echo '';
echo 'Etiam viverra lacinia porta lorem placerat fermentum venenatis ante a. Ante imperdiet blandit eget laoreet faucibus duis nam velit turpis.
Mollis felis nunc accumsan conubia dui consectetur ridiculus pretium senectus a eu. Dis potenti porta hendrerit volutpat maecenas nibh natoque sit auctor fusce.
Copyright © 2025 Mediadeboer. All rights reserved.
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Manage your cookie preferences below:
Essential cookies enable basic functions and are necessary for the proper function of the website.
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Service URL: policies.google.com
You can find more information in our Cookiebeleid (EU) and Privacyverklaring (EU).