Daha once burada yazdigim php ile sql cache uygulamasinin bir benzerini wordpress icin hazirlamistim. Halihazirda satisa cikarttigim, hatda suanda makaleci.com uzerinde sidebar, header, footer gibi kisimlarda kullandigim uygulama icin israr eden ve ihtiyaci olabilecek arkadaslar onuruna zaman ayirip bu beklentiyi sonuclandirmaya calisacagim.

Uygulamanin bir cok yarari var, bunu temalarimda ve kullandigim wordpress sitelerde kullanmamdan anlayabilirsiniz. WordPress File cache ve sql cache eklentilerinin cok yuzeysel calismasi, belirli bir kisitlama getirilememesi ustune 5-10 saniyeye kadar varan cache alma suresinin kullaniciyi ciddi anlamda bunalttigini dusunursek, suanda paylasacagim uygulamanin bir nimet oldugunu soyleyebilirim :)

Uygulama sadece temaniza uyarlayacaginiz bir kod kalibindan olusmaktadir, bu kod kalibi haricinde extra bir islem yapmaniza gerek kalmayacak. Bu uygulamada wordpressin kendi fonksiyonlarini kullandim. Bunlardan en onemlisi veritabanina genelde tema yapimcilarinin ayar bilgilerini kaydetmek icin kullandigi (benimde) “option” ekleme fonksiyonudur. Uygulama sirasinda kullanacagimiz fonksiyonlar bunlar:

update_option, add_option, get_option

Birazda mantikdan bahsedelim:
kalip kodumuzu uyguladigimiz bolgede sorgu sonucunda ortaya cikan kodlar (html) php serialize uygulamasina tabi tutularak add_option ile veritabanina eklenir. Bunu yaparken extra bir alan ilede bu ekledigimi cache alaninin zamanini kaydediyoruz. Boylece bir sonraki istek de cache suresini kontrol ederek eskimis ise update_option ile guncelleyecegiz, yok hala belirledigimiz sure icerisinde isede direk ekrana yazdiracagiz, boylece daha once 50 sorguya neden olan fonksiyon ve sunucuyu zorlayan php uygulamalari 1 veya 2 sorguya inecektir.

Bunun anlami 150 sorgu olan sitenizin 10-15 sorguya kadar dusurulebilecegidir. Enguzel yani ise cacheye alinmasini istemediginiz bolumleri bu uygulama disinda birakabiliyorsunuz, boylece guncelligini koruyabiliyorsunuz istediginiz alanlarin. Bunlar nereler olabilir, yazi okuma alani (single.php) burdaki yorum kisimlari, okunma sayisi, oylama sayisi gibi kisimlarin gosterimi v.s. yada ornegin sidebarda cok fazla sorgu yapan bilesenler, widgetler var. ama guncelligini korumak istediginiz bolumlerde var. Isde bu sirada yeni bir bilesen alani ekleyip cacheye alinmasini istediginiz ve cok fazla sorgu yapan bilesenleri buraya ekleyebilir, sonrada sidebar kodlariniza burdaki kod kalibini uygulayarak sisteminizi rahatlatabilirsiniz.

Fonksiyon dosyasina ekleyecegimiz bir kac kod ilede yeni yazi, yeni sayfa yada yazilarinizi guncellediginizde cachelerin bosaltilmasini saglayacagiz, boylece sitemizin guncelligi herdaim devam edecek :)

Neyse lafi fazla uzatmak iyi degil, konuyu iyi anlamaniz ve yararlari hakkinda bu kadar bilgi yeterli sanirim. Simdi size tema dosyalarinizda cacheye alinmasini istediginiz bolumlere uygulamaniz gereken kodu veriyorum:

Kod kalibini saglikli sekilde anlayabilmeniz icin tekrar elden gecirip, tek tek aciklama yazdim. boylece isleyis asamasinda nelerle karsilasildigini ve sistemin mantigini kolayca anlayabilirsiniz.

Uygulama tek bir kaliptan olusur, yukaridaki kodlari istediginiz yere ekleyerek uygulama yapabilirsiniz. Birden fazla alan icin kullanabilirsiniz. Ancak unutmamaniz gereken kod icerinde en ustdeki cache ismi kismini her alan icin yeniden duzenlemek. tire yada alttire kullanmayin cache ismini belirtirken.

Cacheye alinacak kodlari uygulamada iki yerede ayni sekilde eklemeniz gerek. Kod icerisinde buraya yani:

Kodlari hazirlarken suanda test etmedim, cunku daha pratik ve kolay olmasi acisindan cache ismini degiskene atatim, boylece kalip kodun heryerinde isim degismenize gerek kalmayacak. Ancak hata ile karsilasan olursa konu altindaki yorum kismini bir zahmet kullani versin.

Simdi sitemizin guncelligini korumasini saglamak icin yeni yazi yayinlandiginizda yada yazilarinizi guncellediginizde otomatik olarak cache alanlarini sifirlayacak ve guncelleyecek kodumuzu fonksiyon dosyamizda uygun bir yere ekleyin (tercihen en alta, php kod bitiriciden hemen once)

Yukaridaki kodu tema klasoru icindeki functions.php dosyasina php kodlari icine ekleyin, uygun bir yere tabi. Kod icerisinde cache isimlerini belirteceginiz alan vardir, bu alani kullanarak kullandiginiz cache alanlarinin isimlerini girin.

Bu uygulamada bu kadar, kodlari yazarken kafadan yazdim arkadaslar, eger hata alirsaniz yorum kismini kullanarak aldiginiz hatayi ve hatayi aldiginiz kod satirindaki kodlari buraya yazin, zamanim oldugunda konuyu ve uygulamayi o yonde guncellerim.

12 YORUMLAR

  1. selam Selçuk Bey !

    Siz bu konularda gerçekten iyisiniz acaba wordpress kullananlar için Cpu kullanımının artmaması için bir makale veya yardım konusu yazabilir misiniz ? İnternette bu konuda pek fazla bilgi yer almıyor…

    iyi çalışmalar..

  2. Arkadaşım Bu kodlar on nmumara kodlar fakat ben yapamadım yukarıdaki çok olan kodları nereye ekleyecegiz nasıl ekjleyecegiz lütfen bana yardımcı olurmusun kardeşim

  3. have_posts()) : $recent->the_post();?>
    ID, “thumbnail”, true) ): ?>
    <a href="” rel=”bookmark”><img style="float:left;margin:0px 10px 0px 0px;" src="ID, “thumbnail”, true); ?>” alt=”” width=”70″ height=”70″/>

    <a href="” rel=”bookmark”>

    Yukarıdaki Bu Kodu cachelemek istiyorum ekliyorum bu kodu cacheye alnınacak yere şu şekilde hata veriyor

    Parse error: syntax error, unexpected ‘<' in /

    yardımcı olurmusun kaç gündür yardım bekliyorum sizden

  4. have_posts()) : $recent->the_post();?>
    ID, “thumbnail”, true) ): ?>
    <a href="” rel=”bookmark”><img style="float:left;margin:0px 10px 0px 0px;" src="ID, “thumbnail”, true); ?>” alt=”” width=”70″ height=”70″/>

    <a href="” rel=”bookmark”>

    kod bu

Bir Cevap Yazın