Ayuda con código SQL para Borrar Post en Wordpress

Masterchef

Cobre
Usuario de Bronce
Mensajes
553
Puntuación de reacción
1
Me gustaría que alguien fuera capaz de ayudarme a borrar unos posts determinados, es decir, solo aquellas entradas que no hayan recibido visitas y que sean de meses anteriores.


Para visualizar los post sé que el código es este:
SELECT *
FROM `wp_posts` , `wp_postmeta`
WHERE `post_type` = 'post'
AND post_id = ID
AND DATEDIFF( NOW( ) , `post_date` ) >120
AND meta_key = "views"
AND meta_value =0;

Para borralos en teoría sería este, pero me salta un error cuando lo ejecuto:

create table post_ids_to_remove (postid bigint);

insert into post_ids_to_remove (postid) values (
SELECT post_id
FROM `wp_posts` , `wp_postmeta`
WHERE `post_type` = 'post'
AND post_id = ID
AND DATEDIFF( NOW( ) , `post_date` ) >120
AND meta_key = "views"
AND meta_value =0
)

delete from `wp_postmeta` where post_id in(
SELECT postid
FROM `post_ids_to_remove`
);

delete from `wp_posts` where id in(
SELECT postid
FROM `post_ids_to_remove`
);

drop table post_ids_to_remove;

Este es el error que me dice, cómo no sé mucho de SQL no sé como arreglarlo:
MySQL ha dicho: Documentación
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT post_id
FROM `wp_posts` , `wp_postmeta`
WHERE `post_typ' at line 2
 

Enix

Piedra
Usuario de Piedra
Mensajes
38
Puntuación de reacción
0
Buenas te falta la E.

PHP:
WHERE `post_typ' at line 2

cambia por

PHP:
WHERE `post_type' at line 2

Saludos

Dario
 
Mensajes
100
Puntuación de reacción
0
Probablemente post_type esta para ambas tablas wp_posts y wp_postmeta, deberías especificar en el where tabla.campo ejemplo: wp_posts.post_type='post'...
 
Arriba