Kategórie
Wordpress

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

Pridaj komentár

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