Kategoriler
Wordpress faydalı kodlar

WordPress cache uygulamasi (eklenti degil) – CPU, ve kasilma sorunlari olanlar icin!

Bir arkadas bana wordpress konusunda sorunlari oldugundan ve nasil bunu asacagini sordu. Bende bir cok etken var, konuya ve eldeki malzemeye gore bu liste uzar, yapilacaklar artar yada azali dedim. Sonrasinda bana r10 sitesinde bir konu gosterdi ve nasil oluyor dedi. Tam emin degilim ancak satisi gerceklestiren arkadas file cache ornegini kullaniyor. Benim cok cok onceleri kendi temalarimda da kullandigim bir teknik.

DEMO: ornek uygulanmis bir websitesi

Buraya tiklayarak dosyalari indirebilirsiniz.

Basit bir yontem, genelde tema tasarimcilari file cache uygulamasini tema dosyalarina uygular, ancak bunun tek getirisi an sayfadaki sorgu icin olacaktir. O sorguya gelene kadar wordpress 100 e yakin sorgu yapabilir + eklenti ve temaya gore bu sorgu sayisi dahada cok artiyor.

File cache uygulamasini tema dosyasina uygulamak yerine wordpress’in index.php dosyasi uzerine uygulamaniz daha mantikli olacaktir. Cunku cache alinan sayfa bilgileri, sonraki cagrilisinda 0 sorgu ile ekrana basilacagi icin kusursuz bir 100% hiz elde etmis olacaksiniz.

Bu arkadas, yaninda bu sorundan muzdarip diger arkadaslara hitaben kucuk bir kod yazdim index.php icin ve giris dosyasinada ufak bir edit yaptim.

Normalde file cache uygulanan bir sayfada admin yada kullanici girisi olsa dahi ilk cache alindigi hali gorunecektir. Bunun olumsuz tarafi cok olacaktir. Yorum yapamam, yeni yorumlari gorememe, yada diger gorsel ve anlik iletisimde bulunan eklentilerin verilerinde aksakliklar gibi. Ben bu hazirladigim index.php dosyasi kullanici giris yapmis ise cache ozelligini uygulamiyor, eger misafir ise yani giris yapmamis ise cache aliyor yada zamani dolmamis ise onceki kaydi gosteriyor.

Konu goruntuleme eklentisi kullaniyorsaniz eger javascript ile bunu yapan bir uygulama secmenizi oneririm, aksi taktirde giris yapmayan kullanicilar konularinizin okunmasina etki etmeyecektir. Bir sonraki versiyonda bu konuda da bir calisma yapabilirim isterseniz :)

KURULU

Kaynak dosyalarini konu altindan indirebilirsiniz arkadaslar, tek yapmaniz gereken wordpress kurulu sitenizin ana dizinine atmaniz. Uzerine yazsin secenegi cikarsa evet diyin. (Bunun oncesinde dosyalarinizi yedek alabilirsiniz) Yedek almaniza gerek olmayabilir, cunku olumcul degisiklikler yapmadim dosyalarda :) sisteminize herhangi bir hata vermeyecektir.

Bu mod hazirlanirken buradaki degisken file cache alanindan kopya cektigimide hatirlatirim :)

Dosyalar wordpress son versiyon 3.9.1 icindir, ancak eski versiyonlarda da sorunsuz ve hatasiz calisacaktir, cunku dedigim gibi herhangi bir olumcul degisiklik yapmadim.

Buraya tiklayarak dosyalari indirebilirsiniz.

R10 sitesinde satis konusu bulunan arkadas umarim bu konudan etkilenmez, kendisinin isine engel olmak icin bu konuyu acmiyorum, yardim isteyen bir arkadasa, onun nezdinde de ihtiyaci olanlara yardimci olmaktir amacim. Zira kendi uygulamasi burdakinden gelismis de olabilir :) Satin alacak arkadaslar bu konu sadece yardimci olmak amacindadir, ilgili arkadas ilede ticaret yapmaniz uygun olabilir sizin acinizdan.

NOT: Detayli bir anlatim yapma geregi dumadim, duzenlemenin ilk versiyonudur, zamanim olursa gelistirebilirim, farkli ozellikler ekleyebilirim. Bu kullanici geri bildirimine bagli olarak daha once yada daha sonra sureleri ile sinirli olabilir :)

Kategoriler
Webmaster yardım Wordpress

WordPress – Kullanmadığınız cache eklentilerini kaldırın!

Küçük ve kısa bir bilgilendirme olacka arkadaşlar. Sisteminizde kullandığınız süper cache, total cache yada benzeri eklentileri çoğu zaman kurup sonrada pasif hale getiriyoruz. Bu durum çok yanlış sonuçlara neden olmaktadır. Şiddetle kullanılmayan eklentilerin, özellikle bu eklentiler file cache yada sql cache kategorisine giriyorsa.

Siz cache eklentilerini pasif yaparsınız ancak eklentinin daha önce yerleştirdiği dosyalar yüzünden hala sisteminiz cache dosyalarını göstermeye devam edecektir. Bu ayarlar başta wp-config.php ye eklenenlerde dahil olmak üzere .htccess dosyasına eklenenler yüzünden olabilmektedir. Bu aslında ileri düzey bir sorun değil ancak bu sorunun ortaya çıkması ihtimal durumlardan biriside nginx ve benzeri proxy programlarının cache özelliğinden yararlandığımızda olabilmektedir. Yani sisteminizde nginx varsa pasif duran cache eklentileriniz tehlike yaratabilir.

Eğer pasif eklentileri ilerde kullanmayı düşünüyorum diyor ve silmeye çekiniyorsanız küçük bir kontrol sonrasında sorun olmadığını teyit ettikten sonra aynı şekilde devam edersiniz.

Öncelikle giriş yapmış iseniz çıkıs yapın ve sitenize öyle bakın. Eğer herhangi bir eskiye dönme yada yaptığınız bir değişikliğin olmadığını farkederseniz o zaman eklentileri komple kaldırırsınız. Bunun haricinde sorun olmadığında aynen güvenle devam edebilirsiniz.

Başıma gelen bir olay yüzünden bu yazıyı yazıyorum: kuaza.com sitemde kuazahaber son versiyon temayı kullanıyordum. Bir gün arkadaşımın bilgisayarından girdiğimde sitede orjinal tema görünüyordu. Şaşırtıcı değilmi. Eve gelince yeni tema, başka bir yerde de eski tema görünüyor :D

Bunun üzerine sorunu anlama çalışırken bütün eklentileri pasif yapıp tekrar denedim ama sonuç aynıydı. Sonra farkettim ki bir bilgisayarda üye girişi yapmışım diğerinde ise misafir konumundayım. Kendi bilgisayarımda üye çıkışı yaptığımda eski temanın bende de göründüğünü farkettim ve bunun akabinde cache eklentilerinin bu tarz bir özelliği aklıma geldi. Direk sadece cache eklentisini pasif yapıp üye girişi yaptığımda başarılı oldum.

Bunun kullanılmayan eklentilerin ne kadar zararlı olabileceğini anlatmak istedim. Seyir halinde sağdan devam…

Kategoriler
Wordpress faydalı kodlar

WordPress SQL cache uygulamasi – YENI

Daha once burada paylastigim uygulamanin daha basit, daha hizli ve stabil versiyonunu paylasacagim arkadaslar. Aslinda bunu daha once yazmayi dusunuyordum ancak yogun is temposu, yorgunluk, yogunluk v.s derken epey bir gecikmeme neden oldu.

Bu uygulamanin faydalarindan bahsedeyim biraz:
File cache uygulamalarindan daha iyidir.
Mysql ile cache tuttugumuz icin daha verimli ve daha hizlidir.
sisteminizdeki yuksek sorgulu alanlari hedef aldigimiz icin sorgu sayisinda buyuk bir dusus gosterir.
500 sorguyu 2 sorguya indirgeyebilir, sitenin hizini salise bazina kadar cekebilir.
kullanmazi, ozellestirilebilmesi kolaydir.

Daha onceki yazimda wordpress in options tablosunu kullanarak cache ye alacagimiz alandaki bilgileri yedekliyorduk. Ancak bu sefer uygulama alanindaki fonksiyonumuzu degistiriyoruz ve wordpress in bu ise uygun diger bir fonksiyonunu kullaniyoruz: get_transient

Bu seferki kod kalibimiz cok kucuk ve uygulanabilirligide cok kolay. Bunun icin asagidaki kodlara bakabilirsiniz:

$cache_ismi = "sidebarcache";
$cache_zamani = 60 * 10; // 60*10=600 buda 10 dakikaya esittir heralde :)

// Cache varmi yokmu kontrolunu yaptiriyoruz. eger yoksa sorgu yaptirip, ciktiyi DBye kaydeiyoruz.
if(false === get_transient($cache_ismi)){
ob_start();

/******* Cache Alinacak sorgular, kodlar v.s... *******/

// Burda ciktiyi DB ye kaydediyoruz..
set_transient($cache_ismi, ob_get_contents(), $cache_zamani);
ob_end_flush();

// Eger cache varsa DBden bilgileri cekip ekrana yazdiriyoruz.
}else{

// Echo ile DBdeki cache bilgilerini ekrana yazdiriyoruz.
echo get_transient($cache_ismi);
}

Kod kalibimiz yukardadir, goreceginiz gibi bir onceki makalemdekinden cok kolay, cok basit ve uygulanabilirligi cok kolaydir. Ozellikle kisa ve kucuk olmasi isimizi daha cok kolaylastiriyor.

Bu kod kalibini birden fazla alanda kullanabilirsiniz. Bunun icin cache_ismi kismini her alan icin degistirmeni yeterli olacaktir. yinede yapmaniz gerekenleri kisaca aciklayayim, daha onceki makalemde anlamayan arkadaslar vardi.

Oncelikle kod kalibinda goreceginiz en bastaki bu alani cache alacagimiz alana gore duzenleyin:

$cache_ismi2 = "cache2";
$cache_zamani2 = 60 * 10; // 60*10=600 buda 10 dakikaya esittir heralde :)

daha sonra asagidaki isimlerini duzenledigimiz alanlari guncelleyelim:

// Cache varmi yokmu kontrolunu yaptiriyoruz. eger yoksa sorgu yaptirip, ciktiyi DBye kaydeiyoruz.
if(false === get_transient($cache_ismi2)){
ob_start();

/******* Cache Alinacak sorgular, kodlar v.s... *******/

// Burda ciktiyi DB ye kaydediyoruz..
set_transient($cache_ismi2, ob_get_contents(), $cache_zamani2);
ob_end_flush();

// Eger cache varsa DBden bilgileri cekip ekrana yazdiriyoruz.
}else{

// Echo ile DBdeki cache bilgilerini ekrana yazdiriyoruz.
echo get_transient($cache_ismi2);
}

Son olarak kod icindeki bu alana cache alinmasini istediginiz kodlari ekleyin:
/******* Cache Alinacak sorgular, kodlar v.s... *******/

Bunlardan sonra islemi basari ile gerceklestirmis olacaksiniz. Daha net anlayabilmeniz icin basit bir sidebar.php dosyasindaki kodlari cache almayi gosterecegim. Boylece sidebarda istediginiz kadar bilesen kullanabilirsiniz, cunku sorgu sayisi ciddi anlamda optimize edilecektir.

Ornek sidebar.php icin wordpress in default temasi olan Twenty_Ten temasinin sidebar.php dosyasini ela alacagim. Ornek sidebar.php dosyasi asagidaki gibidir:

< ?php /** * The Sidebar containing the primary and secondary widget areas. * * @package WordPress * @subpackage Twenty_Ten * @since Twenty Ten 1.0 */ ? >

< ?php /* When we call the dynamic_sidebar() function, it'll spit out * the widgets for that widget area. If it instead returns false, * then the sidebar simply doesn't exist, so we'll hard-code in * some default sidebar stuff just in case. */ if ( ! dynamic_sidebar( 'primary-widget-area' ) ) : ? >
< ?php get_search_form(); ? >
< ?php _e( 'Archives', 'twentyten' ); ? >

< ?php wp_get_archives( 'type=monthly' ); ? >

< ?php _e( 'Meta', 'twentyten' ); ? >

< ?php wp_register(); ? >

< ?php wp_loginout(); ? >
< ?php wp_meta(); ? > < ?php endif; // end primary widget area ? >
&nbsp;

< ?php // A second sidebar for widgets, just because. if ( is_active_sidebar( 'secondary-widget-area' ) ) : ? >
< ?php dynamic_sidebar( ‘secondary-widget-area’ ); ? >
&nbsp;

< ?php endif; ? >

Simdi bu kodlara benim yukarida ekledigim kalip kodunu uyguluyorum ve asagidakileri elde ediyorum:

< ?php /** * The Sidebar containing the primary and secondary widget areas. * * @package WordPress * @subpackage Twenty_Ten * @since Twenty Ten 1.0 */ /* EKLEDIGIM BIRINCI KISIM BASLANGIC */ 
$cacheSIDEBAR = "cacheSIDEBAR"; 
$cache_zamani = 60 * 10; // 60*10=600 buda 10 dakikaya esittir heralde :) 

// Cache varmi yokmu kontrolunu yaptiriyoruz. eger yoksa sorgu yaptirip, ciktiyi DBye kaydeiyoruz. 
if(false === get_transient($cacheSIDEBAR)){ 
ob_start(); 
/* EKLEDIGIM BIRINCI KISIM BITIS */ ? >
< ?php /* When we call the dynamic_sidebar() function, it’ll spit out * the widgets for that widget area. If it instead returns false, * then the sidebar simply doesn’t exist, so we’ll hard-code in * some default sidebar stuff just in case. */ if ( ! dynamic_sidebar( ‘primary-widget-area’ ) ) : ? >

  • < ?php _e( ‘Archives’, ‘twentyten’ ); ? >

    < ?php wp_get_archives( ‘type=monthly’ ); ? >

  • < ?php _e( ‘Meta’, ‘twentyten’ ); ? >

    < ?php wp_register(); ? >

    • < ?php wp_loginout(); ? >

< ?php wp_meta(); ? > < ?php endif; // end primary widget area ? >

&nbsp;

< ?php // A second sidebar for widgets, just because. if ( is_active_sidebar( 'secondary-widget-area' ) ) : ? >
< ?php dynamic_sidebar( ‘secondary-widget-area’ ); ? >
<?php endif; 
/* EKLEDIGIM IKINCI KISIM BASLANGIC */ 
// Burda ciktiyi DB ye kaydediyoruz.. 
set_transient($cacheSIDEBAR, ob_get_contents(), $cache_zamani); 
ob_end_flush(); 
// Eger cache varsa DBden bilgileri cekip ekrana yazdiriyoruz. 
}else{ 
// Echo ile DBdeki cache bilgilerini ekrana yazdiriyoruz. 
echo get_transient($cacheSIDEBAR); } 
/* EKLEDIGIM IKINCI KISIM BITIS */ ?>

Ekleme yaptigim yerleri gorebilirsiniz. Suanda bu sidebar dosyasinin yapacagi sorgu sayisi 1 yada 3 u gecmeyecektir. Ne kadar sorgu olursan olsun, isterse 500-1000 sorgu sonunda cacheye aldigindan sonraki belirledigimiz sure icinde her giren kisi sadece sisteme 2-3 sorgu bindirecektir. Buda wordpressin hostu yordugundan sikayetci arkadaslar icin bulunmaz bir nimet olacaktir :)

Yeni yazi eklendiginde yada duzenlendiginde CACHE temizleme (otomatik)
Sitenize yeni yazi eklediginizde yada bir yaziyi guncellediginizde cachelerin bosaltilmasini ve yeniden guncel hali ile cache alinmasini kolaylastirmak icin functions.php dosyasina asagidaki kodlari ekleyin:

function kuaza_cachesilhepsini(){
delete_transient( 'CACHE1' );
delete_transient( 'CACHE2' );
delete_transient( 'sidebarCACHE' );
}


add_action('publish_post', 'kuaza_cachesilhepsini');
add_action('update_post', 'kuaza_cachesilhepsini');
add_action('delete_post', 'kuaza_cachesilhepsini');

Bu kodlar ne is yapar?: sitenize yeni yazi eklediginizde, duzenlediginizde yada sildiginizda ALINAN CACHE iceriklerini temizler. Boylece yeni yazi ekledikten sonra sitenize girenler yeni yazilarinizi cache suresinin bitmesini beklemeden gormus olurlar.
Kullanimi ise basitdir!: delete_transient( ‘CACHE1’ ); seklinde eklediginiz cache isimlerini sirasi ile alt alta ilk fonksiyona ekleyin. Bu kadar. eklediginiz cache isimleri ile eslenen cache icerikler: yeni yazi yazildiginda, silindiginde yada guncellendiginde silinecektir.

Bu eklemenin gerekli olabilecegini dusundum, cunku cache suresini 24 saat belirten arkadaslarin bu caheleri bosaltmazi icin DB ye girmesi gerekecektir. Bu yeni eklemem ile bu dertden kurtarmis oluyorum sizi. Bu yuzden degerimi bilin :)

Konuyu kavrayabilmeniz icin detaylara onem verdim, yoksa cok kucuk bir kod kalibidir, onceki makale gibi anlamayanlarin cikacagini zannetmiyorum ama yinede anlamayan arkadaslar olursa yorum yapmalari yeterlidir, her konuda yardimci olmaya calisacagim, hor gormeyecegim :D

Kategoriler
Faydalı Bilgiler Php uygulamalari Wordpress

WordPress SQL cache uygulaması – manuel duzenleme!

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:

// php tablari icine eklemeniz gerekli: < ?php ------- ?>
// Cache uygulayacaginiz alana ozel isim girin, her yeni alan icin yeni isim belirlemeniz gerekli.
$cacheismi = "CACHE1";

// CAcheye alinacak alan icin zaman tablosunu degiskene atiyoruz.
$dbdekicachezamani = get_option( 'Kuaza_'.$cacheismi.'saat');


// eger zaman tablosu varsa isleme devam ediyoruz, yoksa else ile zaman tablosu ekleyecegiz sonra.
if(isset($dbdekicachezamani)){

// burada cachede kalmasini istediginiz sureyi belirliyoruz. 10 kismini istediginiz kadar artirabilirsiniz. dakika cinsinden girin. 10 = 10 dakika
$cachetime = 60 * 10;

/*
DB de kayitli cache zamanini belirledigimiz cache suresinden eski olup olmadigini kontrol ediyoruz, 
eger zamani gecmemis ise direk ekrana yazdiriyoruz yada gecmis ise update kismini calistiriyoruz.
*/ 
if (time() - $cachetime < $dbdekicachezamani) {

// Cache suresi belirledigimiz surenin icindeyse kdolari ekrana bastiriyoruz ve islem tamamlaniyor.
echo unserialize(get_option( 'Kuaza_'.$cacheismi));


}else{
//eger cache suresi belirledigimiz zamani gecmis ve eskimis ise guncelleme alani calisiyor, yani burasi.

ob_start();



/*CAche alinmasini istediginiz kodlariburaya eklemeniz gerekli.*/
//----->>>cacheye alinacak kodlar buraya yazilmali
/*CAche alinmasini istediginiz kodlariburaya eklemeniz gerekli.*/



update_option( 'Kuaza_'.$cacheismi, serialize(ob_get_contents()) );
update_option( 'Kuaza_'.$cacheismi.'saat', time() );
// ustde update ile databasedeki tablolari ve cache zamanini guncelliyoruz, sonraki isteklerde guncel cache gosteriliyor.

ob_end_flush();
}

}else{
//Eger veri tabaninda cache zamani veya cache alani ekli degilse yeni cache alip yeni alan ekliyoruz.

ob_start();




/*CAche alinmasini istediginiz kodlariburaya eklemeniz gerekli.*/
//----->>>cacheye alinacak kodlar buraya yazilmali
/*CAche alinmasini istediginiz kodlariburaya eklemeniz gerekli.*/




add_option( 'Kuaza_'.$cacheismi, serialize(ob_get_contents()), '', 'yes' );
add_option( 'Kuaza_'.$cacheismi.'saat', time(), '', 'yes' );
// Yukaridaki kod ilede yeni cache alanimiz ve cache kodlarimiz tabloya eklenmis oldu. Bir sonraki calismasinda cache gosterilecek.
ob_end_flush();
}

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:

/*CAche alinmasini istediginiz kodlariburaya eklemeniz gerekli.*/
//----->>>cacheye alinacak kodlar buraya yazilmali
/*CAche alinmasini istediginiz kodlariburaya eklemeniz gerekli.*/

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)

function kuaza_cachesilhepsini(){
// Kullandiginiz butun cache alanlarinin isimlerini belirtin burda.
$array = explode_trim("CACHE1","CACHE2","CACHE3","CACHE4");

// Alt kisimlari ellemeyin.
foreach ($array as $v){
delete_option( 'Kuaza_'.$v.'saat' );    delete_option( 'Kuaza_'.$v );
}
}
add_action('publish_post', 'kuaza_cachesilhepsini');
add_action('update_post', 'kuaza_cachesilhepsini');

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.

Kategoriler
Anketler Günlük hayat Webmaster yardım Wordpress

Eklentili ve Eklentisiz WordPress sitelerinizi hizlandirin!

[poll id=”8″]

Bu makalede cok detaya girmeyecegim arkadaslar, bazi bilenmeyenleri ve bir kac bilinebilecek ipuclarini yazacagim.

Bildiginiz gibi wordpress alt yapisi yuksek yogunluklu sitelerde sunucuyu yorabilecek duzeydedir. Bunu bilen wordpress yazilimcilarinin hazirladigi sisteme entegre cache ozelligini siddetle acmanizi oneriyorum. Bu eklentisiz sitenizde gozle gorulur bir hiz saglayacaktir. Bunun icin asagidaki adimlari uygulayin:

sitenizin root/wp-config.php dosyasini acin ve asagidaki kodu <?php den sonra ekleyin:

define(‘ENABLE_CACHE’, true);

Bu mevcut wordpress cache ozelligini acacaktir. Boylece sitenizin acilisinda, sayfa gezintilerinde gozle gorulur bir hiz olacaktir.

Bu duzenleme ile birlikte WP super cache eklentisinide kullanabilirsiniz. Bu ikisi ile yogun zamanlarda performansi en ust duzeyde saglayabilirsiniz..

Bunlarin haricinde baskalarinin onerileri gibi tema kodlarindaki php sorgular yerine statik kodlar kullanilmasini onermiyorum. Bunlara ornek: site adresini gostermek icin kullanilan php kodu yerine direk site adresini yazmaniza gerek yoktur. Bunlarin sitenin acilisina, hizina v.s cok fazla etkisi olmayacaktir. Olsada olmasada kullanabilirsiniz. Sonucda varolan fonksiyonlar istesenizde istemesenizde yuklendigi icin direk onlari kullanmaniz performansi fazla etkilemeyecektir. Bu tarz duzenlemeler yerine cache ozelligini acmaniz veya cache eklentisi kullanmaniz fazlasiyla yeterli olacaktir. boylece sitenizin guncelliginide korumus olacaksiniz. Cunku her duzenleme icin ftp acip tema dosyalarini el ile guncellemek zorunda kalmazsiniz.

WordPress icin kullanacaginiz sitenizi hazirlarken dikkat etmeniz gereken bir diger konuda uyumlu hosting alt yapisidir. Cogu hosting yapilandirmasi wordpress icin cok ama cok hantal kalacaktir. Bu durumu goz ardi etmemenizi tavsiye ederim, cunku ilerde surekli hosting degistirmek zorunda kalmazsiniz. Bunu ogrenmek icin arastirma yapabilirsiniz. hosting sirketine sormaniz da olasi durumlardan birisi ancak hic kimse musteri kaybetmek istemez, bu yuzden de soz konusu uyumun oldugunu soyleyebilir. En cok wordpress sistemi barindiran hostigleri tercih edebilirsiniz. Hatta direk wordpress.com dan da yararlanabilirsiniz, yanlis bilmiyorsam domain ve alan gibi secenekleri bulunmaktadir. Hem sorunsuz, hemde optimize edilmis sunucularda siteleriniz barindirilacaktir. Ancak bazi durumlarda ozellestirme imkani olmayabilir. bunu iyice arastirarak konuyu anlamak gerek, tam emin degilim cunku.

WordPress sitenizde sorgu sayisini artiracak kategorisel yada etiketsel sorgulari azaltin. Genelde magazine temalarda bu cokca kullanilmaktadir, ancak bunun sitenizi ve hostunuzu yoracagini, gezintiyi uzatacagini unutmayin. Yinede hostunuza ve cache sisteminize guveniyorsaniz bu gorsellikten yaralanmanizi oneririm. Cunku cogu site sahibi kullaniciyi sitesinde tutmak ister, bunuda gorsellik ile yapmaya calisir. Bunun yaninda icerige ve acilis hizinada onem vermeniz gereklidir.

Gel bir sorunda tasarimdaki css ve html bozukluklarindan ibaretdir. Bu sorunlarin olusmasi cogu zaman sitenin yavas aciliyor oldugunu hissettirecektir kullaniciya. W3c onayindan once sorunsuz bir kodlamaya agirlik verin. Fazla html ve css etiketi kullanmadan bu isi halledebilirseniz w3c onayina gerek kalmaz. Yani daha az kod, daha az css ve daha hizli acilis..

WordPress sisteminin eklenti destegi suphesiz harika bir ozellik. Ancak bunu abartmadan kullanmanizda yarar olacaktir. Eklentisel sorunlarinda sitenizi yavaslatacagini ve problemler cikaracagini unutmamaniz gerek. Bu yuzden kullandiginiz versiyon ile alakali eklentiler kullanmaya ozen gosterin.

WordPress her guncellemede bir cok fonksiyonu veya ismini degisebiliyor. Temada kullanilan fonksiyon kodlari eski olacagindan sitenizi yavaslatacaktir. Bunu ogrenmek ve sorunlu yada artik kullanilmayan fonksiyon kodlarini ogrenmek icin wordpress’in debug yani hata gosterme ozelligini acarak bunlari takip edebilirsiniz. Bunun icin asagidaki yolu izleyin:

sitenizin root/wp-config.php dosyasini acin ve asagidaki kodu <?php den sonra ekleyin:

define( 'WP_DEBUG', true );

Bu duzenlemeyi kaydetdikten sonra sitenize bakip sorunlu kodlari en ustden gorebilirsiniz. Genelde temasal degilde eklentisel sorunlar olusuyor. bu yuzden ekentilerin wordpress son versiyon ile uyumlu olmasina dikkat edin. Uyumlu olmasina ragmen yine hata aliyorsaniz, bunu eklenti yazarina iletmenizde yarar olacaktir. Bu tarz sorunlarin kapatilmasi hem sitenizi hizlandiracak, hemde sunucunuza yada hostunuza binen yuku hafifletecektir. Ayrica cache islemlerinide hizlandiracaktir. Bu sebeple siteniz calisiyorken olusacak sorunlari onceden takip edip, duzeltmeye calisin.

Eski eklentilerinizin kalintilarida sitenizi yavaslatacaktir. Bildiginiz gibi eklentileri silseniz bile eski bilgileri databasede kalabiliyor. bu sorgu suresini uzatacaktir, cunku gereksiz bir cok kayit olacagindan bunlar arasindan sonuca ulasmasi zaman alacaktir. Bu tarz eski kalinti bilgilerini temizlemek isin bu eklentiyi(Clean Options) kurup calistirin. Kullanirken dikkat edin arkadaslar, yanlislikla yapilandirilmis eklenti ayarlarinizi silmeyin, yoksa tekrar bastan ayarlarinizi yapmak zorunda kalirsiniz. Bu yuzden Database yedegi alarak eklentiyi calistirin.

Guncel bir siteniz varsa, devamli yazi ekleyip yazi siliyorsaniz, yorum aliyor yada siliyorsaniz mutlaka her gun database optimize etmeniz gerekecektir. Bunun yararlari bozulan tablolari onarmak ve gereksiz verilerin temizlenmesi olacaktir. Buda sitenizi daha da hizlandiracak, gereksiz uzun sorgulardan kurtaracaktir. Bunun icinde WP-Optimize Eklentisini kurup calistirmaniz yeterlidir. Bu sayede sorunlu tablolari optimize edip, gereksiz yazi surumlerini temizleyip, yazi yazarken otomatik eklenen yazi bilgilerini kaldirarak Mysql tablolarini rahatlatabilirsiniz. Bunun sonucunda gelen sorgu istekleri daha hizli olacaktir.

Cache eklentisi kullaniyorsaniz yada nginx deki gzip ozelligi aktif ise iceriginizin gzip formatinda kullaniciya sunulmasi hiz olarakda fayda saglayacaktir. Bu sebeple sitenizdeki icerigin gzip ile SIKISTIRILDIGINI bilerek buna gore hareket edin.

Devamli guncel wordpress versiyonlarini kullanmaya ozen gosterin. Cunku her yeni versiyonda mutlaka bir yenilik yapilmakta, eksiklik giderilmektedir. Genelde tehlikeli yada sorunlu fonksiyon kodlari iyilestirildigi icin bunun sitenize dogrudan yarari ve etkisi olacaktir.

En onemli yapmaniz gereken konuda Kuaza (makaleci) yi takip etmenizdir :)

Bir sonraki yazilarimda bu tarz konulara agirlik verecegim arkadaslar. Guvenli, hizli ve sorunsuz wordpress gunleri dilegiyle yazimi sonlandiriyorum.