Konzistentní adresy médií ve WordPressu

Vydal Jan Bien | 06/2015 | Trvalý odkaz | Přidat komentář

Když uživatel ve WordPressu vloží fotogalerii do stránky a odkazy nastaví na “stránku se zobrazením souboru”, pak adresa stránky detailem fotky bude v tomto formátu:

example.cz/jmeno-stranky/jmeno-prilohy/

gallery-link-page

URL jméno (slug) přílohy, v naší ukázce “jmeno-prilohy”, se implicitně vygeneruje z názvu nahrávaného soubory. To není moc šťastné, protože uživatelé často nahrávají nekonzistentně (a často i nevhodně) pojmenované obrázky. Adresy jsou potom tak říkajíc každý pes, jiná ves.

Proto je vhodné zajistit, že se URL jméno přílohy po nahrání nastaví do konzistentního formátu. K tomu se hodí akce add_attachment, která se vyvolává vždy po nahrání nového média. V přivázané funkci pak lze upravit “post_name” do celkem libovolného formátu.

Takhle vypadá snippet, který nastaví URL jméno na znak “a” následovaný ID číslem přílohy, adresa pak bude v tomto formátu:

example.cz/jmeno-stranky/a123/

Snippet stačí přidat k šabloně do souboru functions.php:


add_action( 'add_attachment', 'my_modify_attachment_slug');

function my_modify_attachment_slug ($post_id) {
	wp_update_post(
		array(
			'ID' => $post_id,
			'post_name' => 'a'.$post_id
		)
	);
}

Zde je pak ke stažení hotový plugin s tímto snippetem. Plugin stačí nainstalovat a aktivovat.

Tož tak.

O autorovi

Jan Bien
Jan Bien
Jako kluk jsem si hrál se stavebnicí Merkur, kterou jsem v dospělosti (lze-li o něčem takovém u muže vůbec mluvit) vyměnil za WordPress. S WordPressem kouzlím zajímavé weby, radím lidem, zda je WordPress dobrý nápad pro konkrétní projekt, a občas koučuji jiné freelancery, co a jak s WordPressem podniknout ke spokojenosti své i svých klientů.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *