SQL запрос удаления постов до определенного id
Нужно удалить wp_post + wp_postmeta записи которые меньше определенного id,
что-то на подобие (написал в шутку, проверил, работает):
DELETE FROM wp_posts WHERE ID < 253294; DELETE FROM wp_postmeta WHERE meta_id < 256489;
если через вордпресс удаление
/*** Удаляем пост вместе с файлами */ add_action( 'before_delete_post', 'delete_all_attached_media' ); function delete_all_attached_media( $post_id ) { if( get_post_type($post_id) == "post" ) { $attachments = get_attached_media( '', $post_id ); foreach ($attachments as $attachment) { wp_delete_attachment( $attachment->ID, 'true' ); } } }
И зачем это? С удалением окуратно нужно, нужно конкретизировать что вы удаляете. Без контекста такой способ удаления оч странный...
А как быть с тем что вы удалите еще что то из базы что не надо было удалять?
Лучше хотя бы что бы было как то так:
(код не проверял, просто для примера)
DELETE FROM wp_posts WHERE ID IN (SELECT ID WHERE ID < 253294 AND post_type = 'post');
В postmeta хранятся ID постов. Поэтому задача сводится к тому чтобы собрать ID постов и удалить их через PHP, чтобы отработали все сопутствующие хуки.