WordPress umožňuje veľmi jednoducho priradiť rôzne súbory k pridaným príspevkom ako ich prílohy. Avšak príloha ostane v systéme aj v tom prípade, že daný príspevok zmažeme. Toto je logické správanie sa, ale nie vždy nám musí vyhovovať.
Ak si želáte, aby sa pri mazaní príspevku zmazali aj všetky prílohy, ktoré sú k nemu priradené, tak stačí keď použijete nasledujúci kód. Napríklad v súbore functions.php
Vašej témy.
function delete_all_files($post_id) { $children = get_children('post_type=attachment&post_parent=' . $post_id); if(empty($children)) return; foreach($children as $attachment) { wp_delete_attachment($attachment->ID, true); } } add_action('delete_post', 'delete_all_files');
Uvedený kód maže všetky prílohy pre všetky zadefinované typy obsahu. Avšak dá sa jednoducho modifikovať, aby mazal len prílohy keď mažeme napríklad príspevok z galérie (vlastný typ obsahu galeria
).
function delete_all_files($post_id) { // ak sa nejedné o príspevok typu galeria, tak nevykonáme nič if( 'galeria' != get_post_type()) return; // ináč nájdeme všetky prílohy priradené k príspevku $children = get_children('post_type=attachment&post_parent=' . $post_id); if(empty($children)) return; // a vymažeme ich foreach($children as $attachment) { wp_delete_attachment($attachment->ID, true); } } add_action('delete_post', 'delete_all_files');
Pridaj komentár