it-swarm.cn

插件具体的缓存功能?

我写了一个插件,在我的博客中的每个链接前放置一个(谷歌)图标。真的很简单。只需在hrefs上使用简单的preg_replace_callback:

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

用一个

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

替换和默认调用谷歌网站的图标(剪掉课外):

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

我现在已经采用了制作我自己的缓存类的方法,该类将图标存储在例如目录中。 /cache/com/facebook/www/f.png。

但我现在正在考虑该课程的位置。为了方便起见,我将缓存放在wp-content目录中。我有以下问题:

  • 我可以插入一个现有的缓存/缓存插件来为我做缓存吗?
  • 我自己缓存的最佳位置是什么?我应该把它放在/ wp-content/cache或/ plugins/myplugin/mycache甚至/ themes/mytheme/cache下吗?

还是有更好的方法吗?

(我正在使用com/facebook/www方法,因为我还存储了stumbleupon的会话日期,美味等......在那里我只想把这些页面/提要称为包含google favicon的请求)(以及我需要显示图标而不是所有浏览器支持嵌入在html中的图标的内联显示我需要将它们写入客户端可用的目录)。

2
edelwater

大多数WordPress缓存功能都设置了文本(如果需要,可以序列化)。由于您需要存储二进制数据,因此最好维护自己的缓存。

至于缓存的位置,我认为它取决于:

  • 对于单个人安装,我会选择简短的目录并生成Nice URL,例如我将图标存储在/images/icons//images/是我所有图像的目录)
  • 对于可能在不同的安装或其他用户中使用的东西,我认为/plugins/myplugin/mycache/最有意义的是如果功能被打包为插件(相同但在主题目录中,如果是主题的一部分)
2
Rarst

我可以插入一个现有的缓存/缓存插件来为我做缓存吗?

是的,你可以,但问题是这是否有意义。文件系统是一个非常好的图像文件数据库。

我自己缓存的最佳位置是什么?我应该把它放在/wp-content/cache/plugins/myplugin/mycache甚至/themes/mytheme/cache下吗?还是有更好的方法呢?

它总是取决于一个简单的地方是uploads文件夹中的子文件夹,因为它通常是可写的。

1
hakre