it-swarm-pt.tech

Plugin de uma funcionalidade de cache específica?

Eu escrevi um plugin que coloca um favicon (google) na frente de cada link no meu blog. Muito simples. Apenas usa um preg_replace_callback simples em hrefs:

$changed_html_reference = preg_replace_callback(self::HTML_REF_REGEX, 
   array($this,'AddExtraHtmlToOneHref'), $strHtmlBodyText);

com um

add_filter('the_content', array($this,'ReplaceAll'), 9);

para a substituição e uma chamada padrão para o site do google para o ícone (recorte de classe):

const GOOGLE_ICON_URL = 'http://www.google.com/s2/favicons?domain=';
function HttpDownloadFeed()
{
 $parsed_url = parse_url($this->url);  
 $data_r = wp_remote_get(self::GOOGLE_ICON_URL . $parsed_url['Host']);
 $data = $data_r['body'];
 return $data;
}

Eu agora tenho a abordagem de criar minha própria classe de cache que armazena os ícones em diretórios como, por exemplo, /cache/com/facebook/www/f.png.

Mas agora estou pensando sobre a localização dessa classe. Por facilidade coloquei o cache no diretório wp-content. As seguintes perguntas eu tenho:

  • eu poderia plugin de um cache/plugin existente para fazer o cache para mim?
  • qual é a melhor localização para minha própria coisa de cache? devo colocá-lo em/wp-content/cache ou/plugins/myplugin/mycache ou mesmo/themes/mytheme/cache?

ou há mesmo uma abordagem melhor para isso?

(Eu estou usando a abordagem com/facebook/www porque eu também armazeno a data da sessão de stumbleupon, delicioso etc ... lá e eu só quero chamar essas páginas/feeds uma vez incl. O pedido de um favicon google) (e desde Eu preciso para exibir o ícone e não todo o suporte do navegador inline exibição de ícones incorporados em HTML eu preciso escrevê-los para um diretório disponível para o cliente).

2
edelwater

A maior parte da funcionalidade de armazenamento em cache do WordPress é configurada com texto (serializado, se necessário) em mente. Como você precisa armazenar dados binários, provavelmente é melhor manter o próprio cache.

Quanto à localização do cache eu acho que depende:

  • para instalação pessoal única eu escolheria o diretório que é curto e faz o URL legal, por exemplo, eu armazeno ícones em /images/icons/ (/images/ sendo meu diretório para todas as imagens)
  • para algo que possa ser usado em diferentes instalações ou por outros usuários, eu acho que /plugins/myplugin/mycache/ faz mais sentido se a funcionalidade é empacotada como plugin (mesmo, mas no diretório do tema, se parte do tema)
2
Rarst

Poderia eu plugin um plugin de cache/cache para fazer o cache para mim?

Sim, você poderia, mas a questão é se isso faz sentido. O sistema de arquivos é um bom banco de dados para arquivos de imagem.

Qual é a melhor localização para minha própria coisa de cache? devo colocá-lo em /wp-content/cache ou /plugins/myplugin/mycache ou até /themes/mytheme/cache? ou existe uma abordagem melhor para isso?

Sempre depende de um lugar simples ser uma subpasta na pasta de uploads, pois essa é frequentemente gravável.

1
hakre