Pasta de uploads de limpeza, estrutura db da Biblioteca de mídia

10

Estou fazendo uma atualização e limpeza de um blog antigo iniciado no Blogger.com e depois movido para o WordPress auto-hospedado 2.1, 2.3 e agora 3.0. As imagens nas postagens estão espalhadas: a maioria está dentro /wp-content/, mas nem todas estão em /wp-content/uploads/ou /wp-content/uploads/year/month/. Outros ainda fazem referência aos servidores de imagem do blogger.com. Eu quero consolidar todos eles /wp-content/uploads/year/month/, o que eu acho que é o lugar "correto"? Isso deve facilitar as atualizações posteriores.

Qual é a melhor maneira de fazer isso? Também gostaria de atualizar os metadados, para que a Biblioteca de Mídia possa gerenciar todos eles. Não encontrei nenhuma documentação sobre isso; desculpe-me por não ter encontrado, aponte-me para ela.

Obviamente, eu forneceria redirecionamentos dos locais antigos para os novos. Qual é a melhor maneira de fazer isso? Um modelo 404.php, de um plugin? Gostaria de adicionar alguns registros, para que possamos encontrar as páginas de referência e talvez corrigi-las.

(Esta pergunta foi originalmente feita nos fóruns de suporte do WordPress , mas não obteve resposta útil lá).

Jan Fabry
fonte
você está procurando um plugin que faça o trabalho?
hakre
Jan? Algum comentário sobre o seu problema? Nenhuma resposta é agradável para você? Nenhum comentário foi útil?
hakre
Concordo que algum tipo de editor em massa de mídia seria útil. Algo que permite importar mídia de diferentes pastas e movê-las rapidamente de acordo com algumas regras. Eu poderia trabalhar nisso, na verdade.
Noio

Respostas:

7

O W3-Total Cache possui um recurso que verificará todas as suas postagens e importará imagens externas para a biblioteca de mídia e alterará os caminhos para o novo local.

Veja a captura de tela

texto alternativo

Chris_O
fonte
2

O lugar correto é a configuração atual, eu diria. Portanto, se você agora usa uma pasta de upload (em vez de subpastas de anos / mês), vá com essa (pode ficar muito cheia, mas mais fácil de classificar. Portanto, basta mover todos os arquivos dos subdiretórios ano / mês para o diretório de uploads e alterar a URL -Caminhos no banco de dados normalmente devem fazer o trabalho.

Depois que tudo estiver em uma pasta (e classificada), você poderá alterar o design da pasta novamente e mover os arquivos para o diretório correto com um script PHP que lê a data no banco de dados. O mesmo script precisa também adotar caminhos de URL novamente.

Isso é algo como exatamente o mesmo script que Mike sugeriu.

No momento, a interface do usuário do WP não oferece suporte para mover ou renomear arquivos manualmente; portanto, você está vinculado a algum código próprio. O que faria sentido para um lote de qualquer maneira.

Plugins existentes e relacionados

  • Adicionar do servidor (Wordpress Plugin) - "Adicionar do servidor" é um plug-in rápido que permite importar mídia e arquivos para o gerenciador de uploads do WordPress a partir do sistema de arquivos dos servidores Web
hakre
fonte
1

@ Jan Fabry: Você provavelmente precisará resolver cada caso separadamente, ou seja, o Blogger hospedou imagens e as que estão fora do wp-content, etc.

Aqui está um plugin para importar do Blogger; não foi atualizado há algum tempo, mas ainda pode funcionar ou, pelo menos, ter código que você pode usar:

Há também um plugin mais antigo que pode ou não funcionar:

Além disso, acho que você precisará apenas escrever um script PHP que verifique seus arquivos e suas postagens procurando por URLs de imagem incorporados, desenvolva uma lista cruzada e depois mova os arquivos e atualize a referência na postagem. Ou talvez você tenha sorte e esse plugin ainda funcione e faça isso por você!

Boa sorte.

MikeSchinkel
fonte
0

Talvez (e seja apenas para futuros leitores - seja um Q antigo) você possa listar todos os 'post_type' => 'anexo' e começar a se separar a partir daí. Quero dizer, buscar as postagens e salvar os diferentes locais em uma matriz. Em seguida, resolva isso para obter uma visão geral de onde suas imagens estão por aí ...

kaiser
fonte
11
@ kaiser: Pode ser uma pergunta antiga, mas ainda estou trabalhando em partes dela, então todas as sugestões são bem-vindas! Espero anotar o que acabei como resposta em breve.
Jan Fabry
@ Jan: Eu acho que eu chamaria todos 'post_type' => 'anexo' e depois chamaria o local (se ele estiver armazenado em algum lugar nos query_vars) e se ele não existir em algum array predefinido (primeiro vazio), pressione-o há. Com o resultado, eu tentaria algo com array_intersect ou similar para retornar apenas os diferentes locais. Esses são apenas alguns pensamentos rápidos e rápidos sobre como descobrir onde as coisas estão espalhadas. Até agora eu não tenho idéia do que eu faria com o resultado ou o redirecionamento ...
kaiser
... Acho que é possível buscar os diferentes locais dos anexos, movê-los e atualizar o local no banco de dados. Eu não me importaria muito com redirecionamentos. A publicação sabe disso, quando o banco de dados sabe e quem realmente se importa com a indexação dos anexos posteriores. Você prefere que ninguém vincule diretamente / hot suas imagens (ou modelos de anexo) e, em vez disso, vincule à postagem que o contém. Pessoalmente, nunca usei um modelo de anexo ou até mesmo defini um link (além de caixas de luz e similares) para um anexo dentro de uma postagem.
kaiser
@ Kaiser: No momento, criei redirecionamentos e movi todas as imagens "perdidas" para o /wp-content/uploads/moved/diretório. Dessa forma, todas as postagens, mesmo aquelas que referenciam locais antigos, continuarão funcionando, e meus outros diretórios são claros (o que foi o maior problema para mim: não ficou muito claro o que pertencia ao WordPress e o que não pertencia). Agora estou atualizando anexos existentes e adicionando imagens que ainda não foram adicionadas como anexos.
Jan Fabry
@ Jan: "Agora estou atualizando anexos existentes e adicionando imagens que ainda não foram adicionadas como anexos". Por mão - pouco a pouco? Não sei exatamente, mas acho que você só precisa dos redirecionamentos, desde que os mecanismos de pesquisa não conheçam o novo local. O resto deve contar com as entradas db. Errado?
kaiser