Rôzne lokácie pre nahrané súbory

Minule som Vám ukázal, ako si vytvoriť rôzne veľkosti obrázkov nahrávaných príloh. Dnes Vám ukážem, ako prílohy ukladať do rôznych adresárov na základe toho, že k akému typu príspevku sú priradené.

Príklad uvediem zase pre vlastný typ obsahu galeria. Ku každej jednej galérii patrí X obrázkov a je vhodné, aby obrázky z jednej galérie boli v jednom adresári.

function dh_upload_rename($array) {
	$post_id = $_POST['post_id'];

	// ak sa nejedná o prílohu k typu obsahu 'galeria' tak nemenime nic
	if(!is_post_type('galeria', $post_id))
		return $array;

	// inac sa pokusime presunut obrazok do podaresara 'galerie/post_id', kde post_id je ID galerie
	$upload_dir = wp_upload_dir(date('Y/m', get_post_time('U', false, $post_id)));

	$new_name = $upload_dir['basedir'] . '/galerie/' . $post_id . '/' . basename($array['file']);

	@mkdir($upload_dir['basedir'] . '/galerie/' . $post_id);
	if(rename($array['file'], $new_name)) {
		$array['file'] = $new_name;
		$array['url'] = $upload_dir['baseurl'] . '/galerie/' . $post_id . '/' . basename($array['file']);
	}
	return $array;
}
add_action('wp_handle_upload', 'dh_upload_rename');

Toto funguje pre prílohy nahrávané cez administračné rozhranie WordPressu. V prípade, že užívateľom umožňujem vytvárať príspevky s prílohami (napríklad nahrané fotky) priamo z web stránky (nie admini rozhrania), tak vtedy musím súbor manuálne umiestniť tam kam patrí.

Súvisiace články:

Pridaj komentár

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

*

Môžete použiť tieto HTML značky a atribúty: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>