AJAX Nedir ve WordPress'te Nasıl Kullanılır (Adım Adım Kılavuz)

Yayınlanan: 2021-05-27
wordpress ajax
@Cloudways'i takip edin

AJAX, web sayfasını yeniden yüklemeye gerek kalmadan arka uçtan veri almanıza ve görünümü yenilemenize olanak tanıyan web sitesi geliştirmede kullanılan popüler bir teknolojidir. Bu nedenle, web sitenizin etkileşimini, hızını ve kullanılabilirliğini geliştirmenize yardımcı olur. AJAX, yorum bırakmak veya tweet göndermek gibi eylemleri her gerçekleştirdiğinizde çalışır.

Bu yazıda size AJAX'ın ne olduğunu ve AJAX'ın WordPress'te (WP AJAX olarak da bilinir) nasıl kullanılacağını anlatacağım. Hadi okumaya devam edelim!

  • AJAX nedir?
  • AJAX Nasıl Çalışır?
  • AJAX WordPress'te Nasıl Kullanılır?
  • Eklentiler admin-ajax.php'yi Nasıl Aşırı Yükler?
  • WordPress Kontrol Panelini Hızlandırın
  • Heartbeat API'sini Kullanan Eklentileri Algıla

AJAX nedir?

AJAX, sunucuya eşzamansız olarak istekte bulunmanıza ve sayfalarımızı yeniden yüklemek zorunda kalmadan değişiklikler yapmanıza olanak tanıyan bir teknoloji olan Eşzamansız JavaScript ve XML anlamına gelir. AJAX betiği, sunucudan bazı verileri döndürmesini ister ve ardından web sayfalarını elde edilen verilerle değiştirir.

Örneğin , randevu tarihinizi seçtiğiniz bir açılır menüyü ve başka bir açılır listeyi dinamik olarak size rezerve edebileceğiniz saatleri gösterdiğini hayal edin. Bir komut dosyası aracılığıyla, sunucuya tedavi açılır menüsünün seçimi için uygun saatler sorulmuştur.

Ayda 10$'dan Başlayan Fiyatlarla Yönetilen WordPress Barındırma

Performans ve hız artışları elde etmek için geliştiricilerin güvendiği güvenilir bulut barındırma deneyimini yaşayın.

3 GÜN ÜCRETSİZ DENEYİN

AJAX Nasıl Çalışır?

AJAX'ın misyonu, web siteniz ve sunucu arasında bir köprü görevi görmektir. Bu asenkron teknolojinin özü, veri alışverişine izin veren XMLHttpRequest nesnesidir. AJAX araması yapmak için temel adımlar şunlardır:

ajax nasıl çalışır

– Kaynak: W3Schools

  • Gönderilecek bilgileri belirtin
  • aramayı ayarla
  • Verileri göndermek için XMLHttpRequest nesnesini kullanın
  • Sunucudan yanıtı alın ve işleyin

İyi olan şey, bu işlemin jQuery kitaplığı kullanılarak basitleştirilebilmesidir.

AJAX WordPress'te Nasıl Kullanılır?

WordPress, AJAX'ı yerel olarak destekler. wp-admin klasörünün içinde “admin-ajax.php” dosyasını görebilirsiniz.

Başlangıçta WordPress yöneticisinden AJAX istekleri yapan tüm işlevler için oluşturuldu. Ayrıca web'in halka açık kısmı için de kullanılır.

Tüm WordPress AJAX istekleri bir PHP betiğinden geçmelidir. Başka bir deyişle, admin-ajax.php, içerik döndüren bir eylemin çağrıldığı PHP dosyası olmalıdır.

2013'te WordPress, başka bir kullanıcı bir WordPress gönderisi yazarken veya düzenlerken otomatik kaydetme özelliği, oturum açma süresinin dolması ve kilitlenme sonrası uyarısı gibi birkaç önemli işlevsellik sağlayan WordPress Heartbeat API'sini tanıttı.

Heartbeat API'sinin çok belirgin iki özelliği şunlardır:

1. Otomatik kaydetme

Bir gönderinin taslağını kaydettiğinizde veya üzerinde çalışmaya devam ettiğinizde, WordPress değişiklikleri otomatik olarak kaydeder. Otomatik kaydetme ile taslağı manuel olarak kaydetme arasında açık bir fark vardır. Her iki kaydetme türünü de gösteren aşağıdaki ekran görüntüsüne göz atın:

gönderi en son düzenlendi ve hazırlandı

– WordPress'te otomatik kaydetme

2. Posta Kilidi

Başka bir kullanıcının üzerinde çalıştığı bir gönderiyi düzenlemeye çalıştığınızda, durumla ilgili bir açılır uyarı penceresi görünecektir. Görebildiğiniz üç işlem var.

wordpress yazı düzenleme

– WordPress’te Mesaj Kilidi

Yukarıda belirtilen özellikler, uygun iletişim ve yanıtlar için sunucu ile tarayıcı arasında bir bağlantı oluşturan WordPress Heartbeat API sayesinde mümkün kılınmıştır.

WordPress Heartbeat API, sunucuyla iletişim için istekler oluşturur ve veri/yanıt alma olaylarını tetikler. Bu genellikle sunucudaki yükü artırır ve sonunda WordPress yöneticisini yavaşlatır.

Canlı Örnek

WordPress kontrol panelime giriş yapıyorum ve bir gönderi hazırlamaya başlıyorum. Ardından, sekmeyi birkaç dakika açık bırakıyorum ve diğer sekmelere göz atmaya başlıyorum. Kontrol panelinde hala oturum açılmıştır ve admin-ajax'ın sürekli istek gönderdiğini görebilirsiniz.

admin-ajax.php sunucuya istek gönderiyor

– admin-ajax.php Sunucuya İstek Gönderme

Yukarıda bahsedilen bilete göre, WordPress'teki admin-ajax.php her 15 saniyede bir istek üretir. İstek, sunucuyla herhangi bir iletişim olabilir.

Eklentiler admin-ajax.php'yi Nasıl Aşırı Yükler?

WordPress'teki admin-ajax.php'deki sorunların çoğu, kurulu eklentiler tarafından yapılan isteklere bağlanabilir. Bu eklentiler, bir pop-up açmak veya bir sosyal paylaşım sayacını güncellemek gibi belirli bir işlevsellik elde etmek için istekler göndererek WordPress yöneticisini yavaşlatır.

Bununla birlikte, isteklerin mutlaka admin-ajax.php dosyasını yükseltmesi gerekmez. İstekler düzgün bir şekilde işlenirse ve eklenti geliştiricileri, eklentilerinde AJAX çağrılarını kullanma konusunda en iyi uygulamaları takip ederse, admin-ajax.php dosyası gayet iyi olacaktır. Bu nedenle, devre dışı bırakmadan önce herhangi bir eklentiyi teşhis etmek de önemlidir.

WordPress'te Bir Eklenti Nasıl Teşhis Edilir?

WordPress yöneticisini yavaşlatabilecek admin-ajax.php dosyası üzerindeki etkisini belirlemek için eklentiyi doğru şekilde teşhis etmek önemlidir. Bunu yapmak için iki araç kullanacağız: GTmetrix ve WebPageTest.

GTmetrix söz konusu olduğunda, isteklerin tam listesi için Şelale sekmesine gidin. Listeye yakından baktığınızda admin-ajax.php dosyası tarafından yapılan POST isteklerini görebilirsiniz.

wordpress eklenti teşhisi

– WordPress'te Eklenti Teşhisi

Benim durumumda, bu istekler esas olarak bir sosyal paylaşım eklentisi tarafından yapıldı. Bu özel eklenti, güncellenmiş bir paylaşım sayısı almak için her 15 saniyede bir API aracılığıyla sosyal medya hesaplarına bir ajax isteği gönderir.

Ayrıntılı bilgi için sekmeyi genişletin. Yanıt sekmesi, bu istekleri tetikleyen tam noktayı gösterir.

Chrome, çeşitli eklentiler tarafından yapılan istekleri analiz etmeye yardımcı olabilecek geliştirici araçlarıyla birlikte gelir. Bunu kontrol etmek için web sitesini Chrome'da açın, CTRL + Shift + I'e tıklayın ve Ağ sekmesine tıklayın.

kromda admix-ajax.php istekleri

– Chrome'da admix-ajax.php İstekleri

Sayfayı yeniden yükleyin ve güncellenmiş isteklerle doldurulan listeyi görün. Gerekli dosyaları filtrelemek için filtre kutusuna ajax veya admin-ajax yazın. Bu size isteklerin sayısı, bunların sıklığı ve isteğin kaynağı hakkında fikir verir.

Ardından, daha fazla bilgi görmek için dosyaya tıklayın. Yanıt sekmesinde, bu isteğe neden olan eklenti hakkında size bazı ipuçları verir. Benim durumumda, bu sefer belirli bir zaman diliminde en popüler gönderiyi vurgulayan bir eklenti olan WP Popular eklentisi (WPP) tarafından tetiklendi.

Bunu önlemek için kullandığınız eklentinin güncel olduğundan emin olun. Değilse, geliştiricilerinin sorunu çözebilmesi için bir destek bileti açmayı deneyin. Mümkünse, onu güncellenmiş ve admin-ajax.php dosyasını aşırı yüklemeyen başka bir eklentiyle de değiştirebilirsiniz.

Bazı eklentiler WordPress siteniz için kritik öneme sahip olduğundan, herhangi bir eklentiden kurtulmadan önce kapsamlı bir teşhis yapmak önemlidir. Bu araçlar, temel nedeni bulmanıza ve onu düzeltmek için mümkün olan en iyi çözümü seçmenize yardımcı olabilir.

Bir sonraki bölümde bu istekleri nasıl azaltabileceğimizi ve admin-ajax.php dosyasının aşırı yüklenmesini nasıl engelleyebileceğimizi göreceğiz.

WordPress Kontrol Panelini Hızlandırın

WordPress arka ucunu hızlandırmak için en iyi uygulama, Heartbeat API'sini devre dışı bırakmak veya en azından birkaç saniyede bir sunucuya çarpmaması için daha uzun bir zaman aralığı ayarlamaktır.

Heartbeat API Eklentisini Yükleyin

WordPress Yönetici Panonuza giriş yapın. Eklentiler → Yeni Ekle → Esinti arayın → Yükle ve Etkinleştir seçeneğine gidin.

wordpress esinti yükleyin

– Breeze'i WordPress'e yükleyin

Breeze Eklentisini Yapılandır

Ayarlar → Esinti → Kalp Atışı API'sine gidin. Orada Heartbeat'i yapılandırmak için 4 farklı seçenek bulacaksınız.

  1. Kalp Atışını Kontrol Et: Arka Uç, Yayın Düzenleyici ve Ön Uç için Heartbeat API'sini açmak veya kapatmak üzere düğmeyi açıp kapatabilirsiniz.
  2. Heartbeat Frontend: Bu, Front-end'inizin davranışını değiştirmenize veya tamamen devre dışı bırakmanıza olanak tanır.
  3. Heartbeat Gönderi Düzenleyici: bu, WP Gönderi Düzenleyicinizin davranışını değiştirmenize veya tamamen devre dışı bırakmanıza olanak tanır.
  4. Heartbeat Arka Uç: Bu, Arka Uçunuzun davranışını değiştirmenize veya tamamen devre dışı bırakmanıza olanak tanır.

esinti içinde kalp atışı API ayarları

– Breeze'de Heartbeat API Ayarları

Birden Çok Kural Oluşturun

Varsayılan olarak, WordPress Heartbeat API'sinin varsayılan sıklığını alırsınız, ancak gereksinimlerinize göre birden çok kural oluşturabilirsiniz. Örneğin, WordPress Backend'in (Dashboard) 2 dakika (120 saniye) içinde tetiklenmesini, ancak Post Editor'ün 3 dakika (180 saniye) içinde tetiklenmesini isteyebilirsiniz. Bunu yapmak için iki kural oluşturmanız gerekir: biri WordPress Dashboard için, diğeri Post Editor için. Frekanslarını sırasıyla 2 ve 3 dakikaya ayarlayın.

Heartbeat API'sini Kullanan Eklentileri Algıla

Artık her şeyi ayarladığınıza göre, hangi eklentilerin admin-ajax.php dosyasını kullandığını ve web sitesini yavaşlattığını kontrol etmenin zamanı geldi.

GTmetrix'e gidin ve sitenizin URL'sini girin. Siteyi analiz etmek birkaç dakikanızı alacaktır. Tamamlandığında, Şelale sekmesine gidin ve bir dosyanın bağlanıp yanıt vermesinin ne kadar zaman aldığını göreceksiniz. Biraz aşağı kaydırın ve POST admin-ajax.php için bir giriş olup olmadığına bakın. Evetse, genişletin ve Gönderi sekmesine gidin. Buradan, suçlu eklentiyi tanımlayabilirsiniz.

Benim durumumda, "masaüstü anahtarı" eklentisi admin-ajax.php dosyasını kullanıyor ve sunucuya sürekli istek gönderiyor. Bu bir karar verme zamanıdır; ya başka bir eklenti ile değiştirin ya da parmaklarınızı çarpın.

yönetici ajax php sonrası

– POST admin-ajax.php

Özet

Özellik seti göz önüne alındığında, Heartbeat API, WordPress web sitenizde çok kullanışlıdır. Ancak, doğru kullanılmadığı takdirde, WordPress Ajax isteklerini gönderip göndererek bir WordPress arka ucunun ve ön ucun yükleme süresini artırabilir.

Bu sorunun sadece iki çözümü var. Heartbeat API'sini yalnızca birkaç yerde devre dışı bırakabilir/etkinleştirebilir veya isteklerin yükünü kaldırabilen ve ayrıca sunucu yanıt süresini azaltabilen bir yönetilen barındırmaya yükseltebilirsiniz.

Sıkça Sorulan Sorular

S: WordPress admin-Ajax nedir?

AJAX, tüm sayfayı yeniden yüklemeden web sayfalarının güncellenmesini sağlayan bir komut dosyaları ve teknolojiler koleksiyonudur. WordPress admin-ajax, WordPress'te Ajax isteklerinin kodlamasını içeren bir dosyadır. Admin-ajax, Ajax kullanan sunucu ile istemci arasında bir bağlantı kurar.

S: AJAX WordPress ile Çalışır mı?

Evet, AJAX WordPress ile çalışır ve arka ucunun bir parçası olduğu için WordPress'e otomatik olarak uygulanır. Tüm sayfayı yeniden yüklemeden veritabanı işlemlerini yönetmek için kullanılır.