Estou procurando uma maneira rápida e segura de excluir todas as postagens de um tipo de postagem personalizado. Usar get_posts()
e wp_delete_post()
para cada postagem retornada não funciona; não é rápido o suficiente devido à grande quantidade de consultas ao banco de dados envolvidas (erro de tempo limite).
De preferência, estou procurando uma única consulta de banco de dados a ser executada que exclui todas as postagens que são de um tipo de postagem personalizada. Alguma ideia?
custom-post-types
database
performance
Marcus McLean
fonte
fonte
wpdb
aula então. Método preferido e "o caminho do WP" para trabalhar diretamente com o DB. Informe-nos se precisar de ajuda com essa consulta. Eu posso postar uma resposta completa mais tarde, se necessário codex.wordpress.org/Class_Reference/wpdb'fields' => 'ids',
emget_posts
obter único posto ID. Isto é tudo que você precisa e significantely irá acelerar o seu consultawp_cron()
Respostas:
Você pode excluir todas as postagens via
$wpdb
ou use esta consulta, substitua-a por {{your CPT}} pelo seu Tipo de postagem personalizado
fonte
wp_term_taxonomy
. Parece que a função que você está procurando para atualizar a contagem éwp_update_term_count($terms, $taxonomy, false)
ou estáwp_update_term_count_now($terms, $taxonomy)
definidawp-includes/taxonomy.php
.Você pode excluir todas as postagens de um tipo de postagem personalizada em vários métodos, mas aqui vou mostrar como fazer isso sem usar a consulta SQL. Aqui, por exemplo, nosso tipo de postagem é produto
Veja o tutorial completo Referência aqui
fonte
get_posts()
ewp_delete_post()
para cada postagem retornada não funciona; não é rápido o suficiente devido à grande quantidade de consultas ao banco de dados envolvidas (erro de tempo limite)." Você está usando as duas funções que ele não deseja usar.