Suporte » Plugins » Deletar imagens

  • rdsdantas

    (@rdsdantas)


    Pessoal, estou com um grande problema no meu wordpress. Meu tema atual gera inúmeras imagens para cada imagem ‘upada’ nos posts, isso porque teoricamente ele precisaria destas variações para diversas visualizações de thumb. O problema é que como meu site é de noticias atualmente tenho no servidor em torno de 7.000 imagens e após a troca do tema já está passando de 100.000 imagens; resultado? a empresa de hospedagem está começando a ameaçar suspender minha conta por extrapolar os limites de INODE do servidor. Por isso preciso apagar as imagens não utilizadas que esse tema está gerando. Gostaria de um exemplo de script para eu realizar esta operação. Vou dar um exemplo do meu cenário atual para ver se alguem pode me ajudar a montar um scrip pra isso.

    Ex.:
    Caminho: /wp-content/upload/2012/01
    /wp-content/upload/2012/02 (e vai nesta hierarquia até 12)

    Dentro destas pastas (01,02, 03…) tem as imagens geradas na estrutura abaixo:

    imagem.jpg (imagem original quando upada)
    imagem-40×40.jpg
    imagem-60×60.jpg
    e segue nestas variações de tamanho até completar em torno de 18 imagens.

    Dois pontos a recaptular:
    1- Ele insere o tamanho do redimensionamento na imagem exatamente como foi mencionado no exemplo acima

    2- Isso aconteceu com o upload das pastas 2011, 2012 e 2013. Sendo, 2011 e 2012 com subpastas que vão de 01 a 12.

    Resumindo, gostaria de um script que delete todas as imagens que contenham as variações declaradas (como no exemplo 40×40, 60×60…).

    Desde já agradeço a atenção e ajuda de todos..

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Criador do tópico rdsdantas

    (@rdsdantas)

    Pessoal, depois de pesquisar um pouco mais consegui fazer um script ‘meia-boca’ pra resolver rápido meu problema; segue o que consegui fazer:

    <?php
    $file_type = array('gif','jpg','png');
    $res_img = array('*40x*','*50x*','*70x*','*110x*','*120x*','*150x*','*160x*','*180x*','*190x*','*220x*','*260x*','*300x*','*340x260*','*460x*','*465x*','*540x*','*575x*','*551x*','*550x*');
    
    	foreach($res_img as $resolucao){
          foreach($file_type as $ext)
            foreach (glob($resolucao.$ext) as $arquivo)
    if (!unlink($arquivo))
    {
      echo ("Erro ao deletar $arquivo");
    }
    else
    {
      echo ("Arquivo $arquivo deletado com sucesso!");
    }
    }
    ?>

    Com ele funcionou bem, já deletei os arquivos. Mas tem um questão de aprimoramento que gostaria de resolver. Se repararem, para conseguir excluir o(os) arquivos esse código tem que ficar no diretório dos próprios arquivos a serem excluídos.

    Alguem conseguiria implementar a possibilidade de escolher o diretório da exclusão? ou melhor, escolher UM diretório e ele buscar os critérios nos subdiretórios?

    Desde já agradeço.. tenho certeza que será útil para muita gente!!

    Eduardo

    (@eduardozulian)

    E se você excluir a criação destas imagens? Essa quantidade enorme de formatos não é nativa do WordPress. Já procurou pela função add_image_size() dentro do seu functions.php?

    Criador do tópico rdsdantas

    (@rdsdantas)

    Vou verificar e posto o resultado. Obrigado Eduardo Zulian

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • O tópico ‘Deletar imagens’ está fechado para novas respostas.