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í.

Zanechať komentár

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