Upraveno 6 prosince, 2023 00:00
Píšete články, do kterých vkládáte přílohy? Patrně Vás bude také zajímat nějaká lepší správa a ochrana příloh ve WordPressu. Základní vylepšení ochrany a správy příloh můžete provést pomocí snippetu, který vložíte do obsahu webu. Pojďme se na jeden takový podívat.
Lepší správa a ochrana příloh ve WordPressu
Tento snippet provádí základní správu a ochranu příloh pomocí přesměrování. Uvedu Vám hned příklad toho, co snippet dělá. Tento kód primárně kontroluje, zda příloha jako taková má článek, ve kterém je vložena. Podle toho, zda článek, do kterého jste takovou přílohu vložili existuje, či nikoliv, provádí následující akce.
Každá příloha v článku má vlastní URL adresu. Pokud uživatel tuto URL adresu souboru zadá do prohlížeče, pak za normální situace tuto přílohu stáhne. S tímto snippetem to ale nebude možné. Nastanou totiž dvě situace.
Pokud příloha má stále na webu aktivní článek, ve kterém je vložena, pak tento snippet přesměruje uživatele po vložení URL přílohy do prohlížeče na tento článek. Přílohu si tedy hned nestáhne, ale zobrazí se mu nejprve článek, ve kterém je příloha jako součást textu. Zde bude teprve schopen si přílohu klasickým způsobem stáhnout, nebo si k tomu zároveň přečíst i text, který se k ní váže.
V situaci, kdy již příloha takovýto článek nemá, nebo je v koši, bude uživatel přesměrovaný na home page. Pokud by se tedy příloha vázala ke článku, který jste již z webu smazali, nebude mít uživatel možnost takovou přílohu stáhnout. Snippet ho pouze přesměruje na hlavní stránku webu.
Díky tomu si ošetříte hned dvě situace. V první řadě nejprve přesměrujete uživatele na článek, který si může přečíst a který se k příloze váže, v druhé řadě nedovolíte uživatelům stahovat takové přílohy, u kterých už článek ani navazující text neexistuje.
Vkládání snippetu do webu pomocí WPCode
Abyste mohli do webu vkládat krátké php kódy, jinak nazývané také snippety, budete potřebovat plugin. V oficiálním repozitáři je jich několik. Osobně jsem si ale oblíbil plugin WPCode. Je dostupný i na této adrese: https://wordpress.org/plugins/insert-headers-and-footers/
Díky tomuto pluginu můžete velice snadno přidat do systému kód, který se bude spouštět a provádět Vámi definované akce a funkce. Podrobný návod, pokud jste s takovýmto pluginem ještě nikdy nepracovali najdete zde: Jak do WordPressu vkládat vlastní kódy
Pokud jste si článek přečetli, pak již patrně tušíte, jak takový snippet do webu přidat. Kód pro ochranu příloh ve WordPressu vypadá takto:
add_action(
'template_redirect',
function () {
global $post;
if ( ! is_attachment() || ! isset( $post->post_parent ) || ! is_numeric( $post->post_parent ) ) {
return;
}
// Does the attachment have a parent post?
// If the post is trashed, fallback to redirect to homepage.
if ( 0 !== $post->post_parent && 'trash' !== get_post_status( $post->post_parent ) ) {
// Redirect to the attachment parent.
wp_safe_redirect( get_permalink( $post->post_parent ), 301 );
} else {
// For attachment without a parent redirect to homepage.
wp_safe_redirect( get_bloginfo( 'wpurl' ), 302 );
}
exit;
},
1
);
Lepší správa a ochrana příloh ve WordPressu
Jakmile kód do webu vložíte a aktivujete, budou uživatelé schopni stahovat přílohy pouze za předpokladu, že k nim existuje relevantní obsah. Zároveň je také rovnou na tento obsah přesměrujete, aby si mohli přečíst kontext, který se k dané příloze váže.
Web je vytvářen s pečlivostí k obsaženým informacím. Snažím se poskytovat kvalitní a užitečný obsah, který ostatním pomáhá, nebo je inspiruje. Pokud jste spokojeni s mou prací a chtěli byste mě podpořit, můžete to udělat prostřednictvím jednoduchých možností.
Byl pro Vás tento článek užitečný?
Klikni na počet hvězd pro hlasování.
Průměrné hodnocení. 0 / 5. Počet hlasování: 0
Zatím nehodnoceno! Buďte první
Je mi líto, že pro Vás nebyl článek užitečný.
Jak mohu vylepšit článek?
Řekněte mi, jak jej mohu zlepšit.
Odebírejte Newsletter
Buďte v obraze! Připojte se k odběru newsletteru a buďte první, kdo získá nejnovější informace přímo do vaší e-mailové schránky. Sledujte aktuality, exkluzivní události a inspirativní obsah, přímo na Vašem e-mailu.