it-swarm.asia

Belirli bir önbellek işlevselliği eklentisi?

Blogumdaki her bağlantının önüne (google) faviconu koyan bir eklenti yazdım. Gerçekten basit. Sadece hrefs'te basit bir preg_replace_callback kullanır:

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

birlikte

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

değiştirme ve simgenin google sitesine yapılan varsayılan arama için (sınıftan ayrılma):

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

Simgeleri, örneğin simgeler gibi dizinlerde saklayan kendi önbellek sınıfımı oluşturma yaklaşımını kullandım. /cache/com/facebook/www/f.png.

Ama şimdi o sınıfın yerini düşünüyorum. Kolaylık sağlamak için önbelleği wp-content dizinine yerleştirdim. Aşağıdaki sorular var:

  • önbellek yapmak için mevcut bir önbellek/önbellek eklentisini ekleyebilir miyim?
  • kendi önbellek işim için en iyi yer neresidir?/wp-content/cache veya/plugins/myplugin/mycache veya hatta/themes/mytheme/cache altına koymalı mıyım?

veya buna daha iyi bir yaklaşım var mı?

(Ayrıca, stumbleupon'un oturum tarihini de saklıyorum çünkü lezzetli/vb. Com/facebook/www yaklaşımını kullanıyorum ... ve sadece bu sayfaları/yayınları bir kez google favicon talebi dahil olmak üzere aramak istiyorum) (ve simgesi görüntülemem gerekiyor ve tüm tarayıcıların html içine gömülü simgeleri gösterme satır içi desteğini desteklemiyorum, bunları müşterinin kullanabileceği bir dizine yazmam gerekiyor).

2
edelwater

WordPress önbelleğe alma işlevinin çoğu, akılda metin (gerekirse serileştirilmiş) ile ayarlanmıştır. İkili verileri kaydetmeniz gerektiğinden, kendi önbelleğini korumak muhtemelen daha iyidir.

Önbellek konumu gelince sanırım bağlıdır:

  • tek kişisel kurulum için kısa olan ve Güzel URL yapan bir dizin seçerdim, örneğin, simgeleri /images/icons/ adresinde saklarım (/images/, tüm resimler için dizimdir)
  • farklı yüklemelerde veya diğer kullanıcılar tarafından kullanılabilecek bir şey için, /plugins/myplugin/mycache/, işlevselliğin eklenti olarak paketlenip paketlenmediğini en anlamlı hale getirir (aynı, temanın bir parçasıysa tema dizininde)
2
Rarst

Önbellek işlemini yapmak için mevcut bir önbellek/önbellek eklentisini ekleyebilir miyim?

Evet, yapabilirsin ama soru şu ki mantıklı. Dosya sistemi, görüntü dosyaları için oldukça iyi bir veritabanıdır.

Kendi önbellek olayım için en iyi yer neresidir? /wp-content/cache veya /plugins/myplugin/mycache veya hatta /themes/mytheme/cache altına koymalı mıyım, yoksa buna daha iyi bir yaklaşım var mı?

Her zaman basit bir yer yükler klasöründe bir alt klasör olduğu gibi sık sık yazma kabiliyetine bağlıdır.

1
hakre