Zastanawiam się, czy ktoś z was zaimplementował taki skrypt w PHP lub mysql, który działa przez cronjob.
Chcę usunąć każdy post, który został złożony w ciągu ostatnich dni, za pomocą prostego polecenia. Zastanawiałem się czy
DELETE FROM wp_posts WHERE post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);
Będę tam pracował. Co sugerujesz?
Odpowiedzi:
0 dla odpowiedzi № 1Twoja linia MySQL nie wystarczy. Aby całkowicie usunąć wpis, musisz również usunąć następujące elementy:
- odpowiednie dane meta po
wp_postmeta
stół - komentarze od
wp_comments
stół - metadane w
wp_commentmeta
tabela dla tych komentarzy
Jeśli chodzi o zapewnienie właściwego rozwiązania, następujące wtyczki wykonują to, czego potrzebujesz:
- https://wordpress.org/plugins/auto-prune-posts/
- https://wordpress.org/plugins/bulk-delete/
- https://wordpress.org/plugins/post-expirator/
Ponadto, jeśli po prostu starasz się utrzymać porządek w bazie danych, możesz dodać ten wiersz kodu do swojego wp-config.php
plik define( "WP_POST_REVISIONS", 8 );
To powstrzymuje WordPress przed tworzeniem nieskończonej liczby korekt postów w bazie danych. Nie twój określony problem, ale przydatny.