Como excluir revisões de postagem?

9

Não defini um limite para o número de revisões, o que faz com que algumas das minhas postagens tenham mais de 20 revisões. Como excluir essas revisões?

A propósito, estou usando o WPMU e tenho muitos blogs, então como excluir as revisões do WordPress para todos os meus blogs?

hugemeow
fonte

Respostas:

10

Essa é uma consulta muito mais segura de usar e removerá as entradas relacionadas do postmeta e term_relationship, ao contrário da consulta de deadlocks em sua resposta.

Altere o {id} para o id de cada tabela de postagens do blog. Você pode combinar esta consulta para executar todas as tabelas de postagem de uma só vez, mas tente isso em uma tabela primeiro. Eu o usei várias vezes em instalações WP únicas.

DELETE a,b,c
FROM wp_{id}_posts a
LEFT JOIN wp_{id}_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_{id}_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

Depois de executá-lo, otimize o banco de dados no phpmyadmin.

E adicione esta linha na parte superior do wp-config.php para evitar futuras revisões:

define('WP_POST_REVISIONS', 0);

ou salve uma revisão:

define('WP_POST_REVISIONS', 1);
markratledge
fonte
Você está certo, isso também é muito eficiente ... postei minha resposta com pressa e também não percebi a parte WP MU. +1.
Deathlock
e como remover revisões, exceto digamos as últimas 3?
Matoeil 10/09/13
2

Há também um plug-in, o WP Optimize, que pode ajudá-lo a fazer isso

A partir do site:

O WP-Optimize é uma ferramenta de limpeza e otimização de banco de dados do WordPress 2.9 ++. Não é necessário que o PhpMyAdmin otimize suas tabelas de banco de dados.

Ele permite remover revisões de postagem, comentários na fila de spam e comentários não aprovados em apenas alguns cliques.

darronz
fonte
Por favor, descreva o que o plug-in faz e como ele resolve o problema.
fuxia
11
Existem muitos plugins que limpam as revisões e otimizam sem o phpmyadmin; nenhum deles está claramente indicado para trabalhar com a WPMU ou com vários sites.
markratledge
este plugin prejudicará meu banco de dados?
hugemeow
Eu usei o plug-in em alguns sites que corro sem problemas. Mas é sempre uma boa idéia fazer backup do seu banco de dados primeiro (mas isso é apenas uma prática recomendada).
darronz
0

Para excluir todas as suas revisões do Wordpress, você pode usar esta consulta:

DELETE FROM wp_posts WHERE post_type = "revision";

deathlock
fonte
eu tenho mais de 100 blogs no wpmu, então devo executar DELETE FROM wp_n_posts WHERE post_type = "revision"; por n vezes, certo? mas isso é muito chato :(
hugemeow 16/10/12
0

Você também pode adicionar este código ao functions.phparquivo do seu tema :

if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 3);
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', false);

Esse código verifica se o WP_POST_REVISIONSlimite foi definido wp-config.php. Caso contrário, ele passa um parâmetro para a função que limita as revisões posteriores. No exemplo acima, as postagens estão limitadas a 3 revisões.

Essa é uma boa solução ao criar temas para pessoas que não sabem (ou não querem) adicionar código.

Retirado de wp-functions.com

NickMcB
fonte
2
Esta resposta não fala sobre a exclusão de revisões. Mas é um bom conselho sobre como desativar revisões para conteúdo futuro.
Nilambar Sharma 23/03
0

Você pode usar o plug-in WP Sweep para limpar as revisões posteriores. Após ativar o plug-in, acesse Ferramentas »Varredura para limpar seu banco de dados do WordPress.

Ashin
fonte
0

Obrigado pela resposta, markratledge. Algo na sintaxe referente ao {id} não funcionou para mim. Alterei {id} para 4009, um dos meus IDs de postagem, mas sem sucesso. Encontrei uma solução em https://dev-notes.eu/2017/11/manage-and-safely-delete-revisions-in-wordpress/

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';

Isso funcionou bem.

feli_x
fonte