我编写了一个插件,在我的博客中的每个链接前面放置一个(谷歌)图标。真的很简单。只需在 href 上使用一个简单的 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);

对于替换和默认调用 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 目录中。我有以下问题:

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

或者有更好的方法吗?

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

有帮助吗?

解决方案

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

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

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

其他提示

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

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

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

它总是取决于一个简单的位置是上传文件夹中的子文件夹,因为该位置通常是可写的。

许可以下: CC-BY-SA归因
scroll top