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.

<br />
function dh_upload_rename($array) {<br />
	$post_id = $_POST['post_id'];</p>
<p>	// ak sa nejedná o prílohu k typu obsahu 'galeria' tak nemenime nic<br />
	if(!is_post_type('galeria', $post_id))<br />
		return $array;</p>
<p>	// inac sa pokusime presunut obrazok do podaresara 'galerie/post_id', kde post_id je ID galerie<br />
	$upload_dir = wp_upload_dir(date('Y/m', get_post_time('U', false, $post_id)));</p>
<p>	$new_name = $upload_dir['basedir'] . '/galerie/' . $post_id . '/' . basename($array['file']);</p>
<p>	@mkdir($upload_dir['basedir'] . '/galerie/' . $post_id);<br />
	if(rename($array['file'], $new_name)) {<br />
		$array['file'] = $new_name;<br />
		$array['url'] = $upload_dir['baseurl'] . '/galerie/' . $post_id . '/' . basename($array['file']);<br />
	}<br />
	return $array;<br />
}<br />
add_action('wp_handle_upload', 'dh_upload_rename');<br />

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

Pridaj komentár

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