it-swarm-es.com

Plugin una funcionalidad de caché específica?

He escrito un plugin que pone un favicon (google) delante de cada enlace en mi blog. Muy simple Solo usa un simple preg_replace_callback en hrefs:

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

con un

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

para el reemplazo y una llamada predeterminada al sitio de Google para el icono (recorte de clase):

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;
}

Ahora he adoptado el enfoque de crear mi propia clase de caché que almacena los iconos en directorios como, por ejemplo, /cache/com/facebook/www/f.png.

Pero ahora estoy pensando en la ubicación de esa clase. Para mayor facilidad, coloqué el caché en el directorio wp-content. Las siguientes preguntas que tengo:

  • ¿Puedo conectar un caché existente/caché para hacer el almacenamiento en caché por mí?
  • ¿Cuál es la mejor ubicación para mi propio caché? ¿Debo ponerlo bajo/wp-content/cache o/plugins/myplugin/mycache o incluso/themes/mytheme/cache?

o hay incluso un mejor enfoque para esto?

(Estoy utilizando el enfoque com/facebook/www porque también almaceno la fecha de la sesión de stumbleupon, delicious etc ... allí y solo quiero llamar a estas páginas/feeds una vez, incluida la solicitud de un favicon de google) (y desde entonces Necesito mostrar el ícono y no todos los navegadores admiten la visualización en línea de íconos incrustados en html. Necesito escribirlos en un directorio disponible para el cliente.

2
edelwater

La mayoría de las funciones de almacenamiento en caché de WordPress están configuradas con texto (serializado si es necesario) en mente. Dado que necesita almacenar datos binarios, probablemente sea mejor mantener su propio caché.

En cuanto a la ubicación del caché creo que depende:

  • para una instalación personal individual, escogería el directorio que es corto y hace la URL de Niza, por ejemplo, almaceno íconos en /images/icons/ (/images/ es mi directorio para todas las imágenes)
  • para algo que podría ser usado en diferentes instalaciones o por otros usuarios, creo que /plugins/myplugin/mycache/ tiene más sentido si la funcionalidad se empaqueta como complemento (igual que en el directorio de temas, si es parte del tema)
2
Rarst

¿Puedo conectar un caché existente/caché para hacer el almacenamiento en caché por mí?

Sí, podrías pero la pregunta es si eso tiene sentido. El sistema de archivos es una base de datos bastante buena para archivos de imagen.

¿Cuál es la mejor ubicación para mi propio caché? ¿Debería ponerlo bajo /wp-content/cache o /plugins/myplugin/mycache o incluso /themes/mytheme/cache? ¿O hay un mejor enfoque para esto?

Siempre depende de que un lugar simple sea una subcarpeta en la carpeta de cargas, ya que a menudo se puede escribir.

1
hakre