插件有没有特定的缓存功能?

时间:2010-08-31 作者:edelwater

我写了一个插件,在我博客的每个链接前面放一个(谷歌)图标。非常简单。只需在HREF上使用一个简单的preg\\u replace\\u回调:

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

add_filter(\'the_content\', array($this,\'ReplaceAll\'), 9);
对于图标的替换和对google站点的默认调用(剪出类外):

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目录中。我有以下问题:

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

(我使用的是com/facebook/www方法,因为我还将stumbleupon、delicious等的会话日期存储在那里,我只想调用这些页面/提要一次,包括请求google favicon)(由于我需要显示图标,而不是所有浏览器都支持内嵌在html中的图标的内联显示,我需要将它们写入客户端可用的目录)。

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

大多数WordPress缓存功能都是在考虑文本(如果需要,可以序列化)的情况下设置的。因为您需要存储二进制数据,所以最好维护自己的缓存。

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

对于单个个人安装,我会选择一个简短且URL很好的目录,例如,我将图标存储在/images/icons/ (/images/ 是我所有图像的目录)

  • 我想其他用户可能会在不同的安装中使用/plugins/myplugin/mycache/ 如果功能打包为插件(相同但在主题目录中,如果是主题的一部分),则最有意义

  • SO网友:hakre

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

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

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

    这始终取决于上载文件夹中的一个子文件夹是否是一个简单的位置,因为该子文件夹通常是可写的。

    结束

    相关推荐

    是否为WordPress+Nginx和WP-SuperCache配置路由规则?

    你怎么set up routing rules 正确使用Nginx 支持WP Super Cache 对于WordPress(3.x)网站?