Redefinir IDs de postagem para um número inferior a 64 bits

8

Estou executando o Wordpress há muitos anos e tenho cerca de 26000 posts.

Em algum momento, meus IDs de postagem excederam um número inteiro de 32 bits e agora estou bloqueado no Wordpress em um sistema de 64 bits.

Estou vendo postagens com IDs como 4863166253.

Gostaria de mudar minha hospedagem para um servidor de baixa potência, como um raspberry pi de 32 bits.

Existe alguma maneira de redefinir os IDs de postagem para que todos fiquem abaixo de 2 bilhões?

Você pode ler meu relatório de erros do Wordpress aqui

Obrigado.

Mark Waters
fonte
Este é um dos seus plugins que o leva até lá, eu acho que post_2_post, mas isso é apenas um palpite. Você precisa realmente entender por que você tem um número tão alto (nenhuma quantidade real de revisões ao vivo o levará até lá, a menos que novamente seja um plugin para criá-las) e só então você poderá começar a planejar como corrigi-lo.
precisa

Respostas:

5

Esta resposta é a maneira que eu adotaria para resolver o problema, se eu tivesse que enfrentá-lo, significa que não é a resposta, mas uma das possibilidades.

Todas as operações que sugerirei devem ser executadas em um servidor local / de desenvolvimento em um backup do banco de dados e não na produção nem no banco de dados original.

Se você possui 26.000 posts, mas um ID de publicação como 4.863.166.253, existem zilhões de IDs que não são usados.

Para resolver esse problema, você precisa:

Passo 1

  • remova os IDs de postagem não utilizados. (postagens na lixeira, revisões)
  • órfãos removidos postam meta entradas
  • remover entradas de relação de taxonomia de órfãos

Existem plugins para o escopo, mas isso pode ser feito usando consultas SQL simples e brutas.

Passo 2

Redefina os IDs de postagem alterando-os para começar a partir de 1. Isso pode ser feito usando uma combinação de PHP + MySQL: se você recuperar a coluna de ID de postagem como uma matriz (por exemplo, via $wpdb->get_col()), as chaves da matriz (incrementadas por 1) seriam novas IDs de postagem para mensagens cujo ID atual está nos valores da matriz.

Observe que os IDs das postagens precisam ser alterados em:

  • poste de mesa
  • tabela de relação de taxonomia
  • postar tabela meta

Sugiro que você execute essa rotina em subconjuntos de postagens usando resultados paginados e não em milhares de linhas como um todo.

etapa 3

Defina o AUTO_INCREMENTíndice na tabela de postagem para contabilizar + 1.

Feito

No final desse processo, seu ID de postagem mais alto deve estar facilmente dentro do limite inteiro de 32 bits.

Impedir que o limite de postagem seja atingido novamente

  • Desative as revisões posteriores ou limite-as em número (consulte o Codex ).

  • Mova postagens mais antigas (2 anos? 5?) Para um blog separado em um ambiente multisite, por exemplo, site1-archive.example.compara postagens em site1.example.com.

    Isso pode ser feito usando o exportador do WordPress com a opção de período.

    Se você planeja fazer isso, é muito melhor fazer isso antes de redefinir os IDs das postagens (etapa 2 acima), dessa forma, os dois 2 blogs podem ter uma ID de postagem mais baixa.

    Obviamente, depois disso, você também deve criar uma maneira de redirecionar os URLs de postagem arquivados para novos.

gmazzap
fonte