Estoy buscando una forma segura y rápida de eliminar todas las publicaciones de un tipo de publicación personalizada. Usar get_posts()
y wp_delete_post()
para cada publicación devuelta no funciona; no es lo suficientemente rápido debido a la gran cantidad de consultas a la base de datos involucradas (error de tiempo de espera).
Preferiblemente, estoy buscando una única consulta de base de datos para ejecutar que elimine todas las publicaciones que sean de un tipo de publicación personalizada. ¿Alguna idea?
custom-post-types
database
performance
Marcus McLean
fuente
fuente
wpdb
clase entonces. Método preferido y "la forma WP" para trabajar directamente con el DB. Háganos saber si necesita ayuda con esa consulta. Puedo publicar una respuesta completa más tarde si es necesario codex.wordpress.org/Class_Reference/wpdb'fields' => 'ids',
enget_posts
conseguir único puesto de identificación. Esto es todo lo que necesita y acelerará significativamente su consultawp_cron()
Respuestas:
Puedes eliminar todas las publicaciones a través de
$wpdb
o utilice esta consulta, reemplácela con {{su CPT}} con su Tipo de publicación personalizada
fuente
wp_term_taxonomy
. Parece que la función que está buscando para actualizar el recuento estáwp_update_term_count($terms, $taxonomy, false)
o estáwp_update_term_count_now($terms, $taxonomy)
definidawp-includes/taxonomy.php
.Puede eliminar todas las publicaciones de un tipo de publicación personalizado en varios métodos, pero aquí le mostraré cómo hacerlo sin usar la consulta SQL. Aquí, por ejemplo, nuestro tipo de publicación es producto
Ver tutorial completo Referencia aquí
fuente
get_posts()
ywp_delete_post()
para cada publicación devuelta no funciona; no es lo suficientemente rápido debido a la gran cantidad de consultas a la base de datos involucradas (error de tiempo de espera)". Estás usando las dos funciones que él no quiere usar.