WordPress add_image_size Boyutlarını Eski Resimlere Uygulama
Yüklenecek resimler için add_image_size ile belirlediğimiz özel boyutları daha önceki yazılarda yüklenen resimlere de uygulamak için aşağıdaki fonksiyonu kullanabilirsiniz. Dikkat etmeniz gereken konu ise çok fazla yazınız varsa post_per_page kısmını $chunk_size ile limitlendirmektir.

function regenerate_thumbnails_chunk($chunk_size = 20) {
require_once( ABSPATH . 'wp-admin/includes/image.php' );
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'post_status' => 'inherit',
'posts_per_page' => $chunk_size,
'paged' => isset($_GET['page']) ? intval($_GET['page']) : 1,
);
$query_images = new WP_Query($args);
$count = 0;
if ($query_images->have_posts()) {
while ($query_images->have_posts()) : $query_images->the_post();
$id = get_the_ID();
$fullsizepath = get_attached_file($id);
if (false === $fullsizepath || !file_exists($fullsizepath))
continue;
$metadata = wp_generate_attachment_metadata($id, $fullsizepath);
if (is_wp_error($metadata)) {
echo "Error processing image $id: " . $metadata->get_error_message() . "<br>";
} else {
wp_update_attachment_metadata($id, $metadata);
$count++;
echo "Processed image $id...<br>";
flush();
}
endwhile;
}
wp_reset_postdata();
echo "Processed $count images in this chunk.<br>";
if ($query_images->max_num_pages > $args['paged']) {
$next_page = $args['paged'] + 1;
echo "<a href='" . admin_url('tools.php?page=regen-thumbs&page=' . $next_page) . "'>Next Page</a>";
} else {
echo "Finished processing all images.";
}
}
Yukarıdaki regenerate_thumbnails_chunk(); fonksiyonunu index.php ya da istediğiniz bir sayfaya ekleyerek çağırabilirsiniz.
Umarım işinize yarar. Görüşürüz.