web-dev-qa-db-fra.com

Plugin une fonctionnalité de cache spécifique?

J'ai écrit un plugin qui place un favicon (google) devant chaque lien de mon blog. Vraiment simple. Utilise juste un simple preg_replace_callback sur les hrefs:

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

avec un

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

pour le remplacement et un appel par défaut au site Google pour l'icône (extraire de la 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;
}

J'ai maintenant choisi de créer ma propre classe de cache, qui stocke les icônes dans des répertoires tels que, par exemple. /cache/com/facebook/www/f.png.

Mais je pense maintenant à l'emplacement de cette classe. Pour plus de facilité, j'ai placé le cache dans le répertoire wp-content. Les questions suivantes que j'ai:

  • est-ce que je pourrais brancher un cache/cache existant pour faire la mise en cache pour moi?
  • quel est le meilleur emplacement pour mon propre cache? dois-je le placer sous/wp-content/cache ou/plugins/myplugin/mycache ou même/themes/mytheme/cache?

ou y a-t-il même une meilleure approche à cela?

(J'utilise l'approche com/facebook/www car je stocke également la date de session de stumbleupon, délicieux etc ... et je ne souhaite appeler que ces pages/flux une fois, y compris la demande de google favicon) (et depuis J'ai besoin d'afficher l'icône et tous les navigateurs ne prennent pas en charge l'affichage en ligne des icônes incorporées au format HTML. J'ai besoin de les écrire dans un répertoire disponible pour le client).

2
edelwater

La plupart des fonctionnalités de mise en cache de WordPress sont configurées avec le texte (sérialisé si nécessaire). Comme vous devez stocker des données binaires, il est probablement préférable de conserver votre propre cache.

En ce qui concerne l'emplacement du cache, je pense que cela dépend:

  • pour une installation personnelle unique, je choisirais un répertoire court contenant Nice URL, par exemple, je stocke les icônes à /images/icons/ (/images/ étant mon répertoire pour toutes les images)
  • pour quelque chose qui pourrait être utilisé sur différentes installations ou par d'autres utilisateurs, je pense que /plugins/myplugin/mycache/ est plus logique si la fonctionnalité est packagée en tant que plugin (idem mais dans le répertoire theme, si elle fait partie du thème)
2
Rarst

Est-ce que je pourrais brancher un cache/cache existant pour faire la mise en cache pour moi?

Oui, vous pourriez, mais la question est de savoir si cela a du sens. Le système de fichiers est une très bonne base de données pour les fichiers image.

Quel est le meilleur emplacement pour mon propre cache? dois-je le mettre sous /wp-content/cache ou /plugins/myplugin/mycache ou même /themes/mytheme/cache? ou existe-t-il même une meilleure approche à cet égard?

Cela dépend toujours d'un endroit simple qui est un sous-dossier dans le dossier de téléchargement car celui-ci est souvent en écriture.

1
hakre