私は私のブログの各リンクの前に(グーグルの)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ディレクトリに置きました。以下の質問があります。
それとももっと良いアプローチがありますか?
(私はそこにstumbleupon、おいしいなどのセッション日も保存しているので、私はcom/facebook/wwwのアプローチを使用しています。私はアイコンを表示する必要があり、すべてのブラウザがHTMLに埋め込まれたアイコンのインライン表示をサポートしている必要はありません。
WordPressのキャッシング機能の大部分は、(必要に応じてシリアル化された)テキストを考慮して設定されています。バイナリデータを保存する必要があるので、おそらく独自のキャッシュを維持するほうが良いでしょう。
キャッシュの場所は私が依存すると思う:
/images/icons/
に格納します(/images/
はすべての画像のディレクトリです)。/plugins/myplugin/mycache/
が最も意味があると思います(テーマの一部であれば同じですが、テーマディレクトリにあります)。既存のキャッシュ/キャッシュプラグインをプラグインしてキャッシュすることはできますか?
はい、できますが、問題はそれが理にかなっているかどうかです。ファイルシステムは画像ファイルのためのかなり良いデータベースです。
自分のキャッシュに最適な場所は何ですか?それを
/wp-content/cache
や/plugins/myplugin/mycache
、さらには/themes/mytheme/cache
の下に置くべきですか?それとももっと良いアプローチがありますか?
それが常に書き込み可能であるのでそれは常に単純な場所がuploadsフォルダーのサブフォルダーであることに依存します。