Když chcete vymazat větší množství příspěvků, tak to může být přes administraci docela otrava. Vše se dá ale automatizovat pomocí pár řádků php kódu.
<?php
/**
* Jak ve WordPress hromadně vymazat příspěvky pomocí kódu
* https://navodovna.cz/navody/jak-ve-wordpress-hromadne-vymazat-prispevky-pomoci-kodu/
* Návodovna 2022
*
*/
// argumenty pro výběr příspěvků, které se smažou
$args = [
'post_type' => 'post', // nahraď vybraným post typem
'numberposts' => -1 // -1 = smaže všechny příspěvky
];
$allposts = get_posts( $args ); // // https://developer.wordpress.org/reference/functions/get_posts/
foreach ($allposts as $eachpost) { // https://www.w3schools.com/php/php_looping_foreach.asp
// 1. Smazat jen příspěvek
wp_delete_post( $eachpost->ID, true ); // https://developer.wordpress.org/reference/functions/wp_delete_post/
// 2. Smazat příspěvek i jeho meta
smazani_jeho_meta( $eachpost->ID ); // spustí funkci, která je definovaná níže
}
// Funkce smazání příspěvku včetně všech meta polí
function smazani_jeho_meta( int $post_id ) : bool
{
if( $post_metas = get_post_meta($post_id) )
foreach( $post_metas as $meta_key => $meta_value ) {
delete_post_meta( $post_id, $meta_key ); // https://developer.wordpress.org/reference/functions/delete_post_meta/
}
// vrátí
return wp_delete_post( $post_id, true ); // true = smazáno navždy, bez koše
}
