Delete all sizes

V článku, ktorým som vydal predvčerom, som uviedol návod ako generovať rôzne veľkosti obrázkov pre rôzne typy obsahu. Ak však použijete pre vlastnú veľkosť obrázoku „neštandardné“ meno, tak sa pri mazaní prílohy táto veľkosť automaticky nevymaže.

Ak sa nemýlim, tak vo WordPresse sú štandardné mená pre vygenerované zmenšeniny obrázkov thumbnail, medium a large. Tieto veľkosti sa aj automaticky vymažú pri mazaní prílohy. Ak však pre vlastnú veľkosť zvolíte iné meno, tak táto veľkosť vymazaná nebude.

Samozrejme ani toto nie je problém a aj na toto mám kód, ktorý to napraví:

function delete_all_sizes($attachment_id) {
	$metadata = wp_get_attachment_metadata($attachment_id);
	if(!$metadata)
		return false;
	$upload_dir = wp_upload_dir();
	$subdir = dirname($metadata['file']);
	foreach($metadata['sizes'] as $size) {
		$file = $upload_dir['basedir'] . '/' . $subdir . '/' . $size['file'];
		if(file_exists($file) && is_file($file))
			unlink($file);
	}
}
add_action('delete_attachment', 'delete_all_sizes');

S použitím tohto kódu si môžete generovať akékoľvek množstvo vlastných veľkostí obrázkov v prílohách a môžete si byť istý, že budú vymazané pred vymazaním prílohy.


Posted

in

by

Comments

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *