web-dev-qa-db-ja.com

特定のキャッシュ機能をプラグインしますか?

私は私のブログの各リンクの前に(グーグルの)faviconを置くプラグインを書きました。本当に簡単です。 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の下に置く必要がありますか。

それとももっと良いアプローチがありますか?

(私はそこにstumbleupon、おいしいなどのセッション日も保存しているので、私はcom/facebook/wwwのアプローチを使用しています。私はアイコンを表示する必要があり、すべてのブラウザが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