Jak ve WordPress hromadně vymazat příspěvky pomocí kódu

wordpress

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
}
Reklama
Jetpack
Zobrazeno 147 krát.
%d bloggers like this: