WordPress Heartbeat API, WordPress 3.6 sürümünde tanıtılan bir özelliktir ve o zamandan beri, WordPress yönetici kontrol panelinizde oturum açtığınızda sunucunuz ile tarayıcınız arasında neredeyse gerçek zamanlı iletişim sağlar. Bu özellik, geliştiricilerin web sunucusuna hızlı bir şekilde bağlanmasına yardımcı oldu, bu nedenle çok sayıda işlevsellik için kullanıldı.
Sunucu ve tarayıcı arasında düzenli zaman aralıklarında, en yaygın olarak 15 saniye olan tick’ler, yani “pulse” göndererek çalışır. Ve inkar edilemeyecek kadar yararlı olsa da, özellikle birden çok yönetici web sitenizde başka görevleri düzenliyor veya çalıştırıyorsa, sunucuda yüksek CPU kullanımına yol açabilir. Elbette bu, özellikle paylaşımlı barındırma kullanıyorsanız, web sitesi performans sorunlarına yol açabilir.
Bunu göz önünde bulundurarak, WordPress Heartbeat API’sini nasıl yönetebileceğinizi daha yakından açıklayan bu makaleyi derlemeye karar verdik. Spesifik olarak tam olarak ne olduğunu ve sınırlamadan veya tamamen devre dışı bırakmadan önce neleri dikkate almamız gerektiğini ve nasıl yapabileceğinizi tartışacağız.
İşte bu yazıda bahsedeceklerimiz:
-
WordPress Heartbeat API’sini Anlamak
-
WordPress Heartbeat API’sini Yönetme Hakkında
-
WordPress Heartbeat API’sini Sınırlandırma
-
WordPress Heartbeat API’sini Devre Dışı Bırakma
-
Heartbeat POST İstekleri Nasıl İzlenir?
WordPress Heartbeat API’sini Anlamak
WordPress Heartbeat API, AJAX çağrılarını kullanarak tarayıcı ile web sunucusu arasında iletişim sağlar. Daha kesin olarak sunucuya POST istekleri göndermek ve alınan web sitesi verileriyle geri arama olaylarını tetiklemek için /wp-admin/admin-ajax.php dosyasına güvenir. Varsayılan olarak bu istekler, oturum açmış her kullanıcı yönetici kontrol panelini kullanırken, web sitesinin ön yüzünde veya bir gönderiyi veya sayfayı düzenlerken periyodik olarak gönderilir.
WordPress Heartbeat API’sinin kullanıldığı çok sayıda örnek vardır ve bunlar arasında otomatik kaydetmeler oluşturma ve yayın düzenleyicide revizyonları yönetme, WordPress yönetici panosunu kullanarak bildirimleri yönetme, birden çok kullanıcı aynı gönderiyi düzenlerken son kilitleme, bir kullanıcının ne zaman zaman aşımına uğradığını gösterme yer alır. e-ticaret eklentileri için gerçek zamanlı satış verilerini yönetmenin yanı sıra boşta kalmak için. Fakat bu özelliklerin kullanışlılığına rağmen, çok sayıda AJAX isteği yüksek CPU kullanımına ve hatta bazı durumlarda sunucunun aşırı yüklenmesine neden olabilir. Sonuç olarak web sitenizin performansı yavaşlayacak, sayfalarınız daha yavaş dizine eklenecek ve aşırı durumlarda, sunucu kaynaklarının aşırı kullanımı nedeniyle barındırma hesabınızın askıya alınmasına neden olabilir.
Bu tür sorunlardan kaçınmak için, WordPress Heartbeat API’sini bir şekilde veya kapasitede yönetmeyi düşünmelisiniz. “Tıklamaların” sıklığını sınırlamayı veya Heartbeat API’yi tamamen devre dışı bırakmayı seçebilirsiniz. Aşağıda her iki yöntemi ve bunlardan birini seçmeden önce göz önünde bulundurmanız gereken şeyleri tartışacağız.
WordPress Heartbeat API’sini Yönetme Hakkında
Aşağıdaki bölümlerde, Heartbeat API POST isteklerinin sıklığını nasıl sınırlayabileceğinizi ve API’yi tamamen nasıl devre dışı bırakabileceğinizi ele alacağız. Her ikisi de uygun bir WordPress eklentisi ve özel kod kullanılarak yapılabilir. Tabii ki, her iki yöntemi de ele alacağız. Fakat makalenin nasıl yapılır kısmına geçmeden önce bahsetmemiz gereken birkaç şey var.
İlk olarak Heartbeat API’sini yönetmenin bir yolu, hem ücretsiz hem de premium olan birçok WordPress performans optimizasyonu eklentisinde bulunabilir. Bu makale için, en iyi bilinenlerden biri olan ve özellikle bu amaç için oluşturulmuş olan Heartbeat Control adlı ücretsiz bir eklentiyi sergilemeyi seçtik.
Bununla birlikte Heartbeat API’yi sınırlamak veya özellikle devre dışı bırakmak, eklentilerinizin ve temanızın işlevlerini ve bir bütün olarak bir web sitesini olumsuz etkileyebileceğinden, devam etmeden önce web sitenizin bir yedeğini almanızı şiddetle öneririz.
Son olarak Heartbeat API’yi devre dışı bırakmak veya sınırlamak için eklediğimiz kod parçacıklarını kullanmayı tercih ederseniz, FTP bilginizi tazelemeniz de önerilir. Daha sonra gerekli tüm önlemleri aldıktan sonra aşağıdan devam edin.
WordPress Heartbeat API’sini Sınırlandırma
Genel olarak konuşursak, Heartbeat API tarafından oluşturulan isteklerin sayısını sınırlamak, API’ye dayanan eklentilerin, temaların ve WordPress Çekirdeğinin işlevlerini korurken CPU kullanımını azaltacağından çoğu WordPress kullanıcısı için gidilecek çözüm olmalıdır. Bu yüzden önce onu sergileyeceğiz.
Ek olarak aşağıda açıklanan yöntemlerden herhangi birini gerçekleştirdikten sonra, /wp-admin/admin-ajax.php dosyasına yapılan HTTP isteklerini izleyerek zaman aralığı ayarlarının doğru uygulanıp uygulanmadığını test etmenizi de öneririz. Heartbeat API zaman aralığını değiştirdikten sonra gözden geçirmenizi tavsiye ettiğimiz, makalenin ilerleyen bölümlerinde Heartbeat POST isteklerinin izlenmesine ilişkin bölümümüzde ele aldık. Bunu söyledikten sonra devam edelim.
-
WordPress eklentisi kullanma
Eklentiyi yükleyip etkinleştirdikten sonra, sizi Heartbeat API’sini sınırlamak veya devre dışı bırakmak için gereken tüm seçenekleri içeren Genel ayarlar sekmesine yerleştirecek olan Ayarlar > Heartbeat Control bölümüne gidin. Sekmede, daha önce bahsedildiği gibi tümü Heartbeat API’sini kullanan WordPress kontrol paneli, web sitesinin ön ucu ve yazı düzenleyici ile ilgili üç seçenek alt bölümü göreceksiniz.
Bu alt bölümlerin her biri, Heartbeat API’ye izin verme veya devre dışı bırakma seçeneğinin yanı sıra “Kalp Atışını Değiştir” seçeneğini kullanarak yinelenen zaman aralığını değiştirme seçeneği sunar. Varsayılan olarak “Allow Heartbeat” seçeneği işaretlidir, Heartbeat API frekansı yani POST isteklerinin çağrıldığı zaman aralığı gösterilmez.
Örneğin Heartbeat API frekansını aşağıdaki WordPress kontrol panelinde değiştireceğiz. Bunu yapmak için, “Kalp Atışını Değiştir” seçeneğinin yanındaki radyo düğmesini tıklamamız gerekiyor. Bunu yaptıktan sonra, Kalp Atışı frekansınızı 15 ila 300 saniye arasında ayarlayabileceğimiz bir kaydırıcı gösterilecektir. Hatta varsayılan değeri 15 olan mevcut Kalp Atışı frekansını da gösterecektir.
Daha sonra Heartbeat “tiklerinin” verildiği zaman aralığını değiştirmek için bu kaydırıcıyı kullanarak 15 ile 300 arasında bir değer seçin ve yapılan değişiklikleri kaydetmek için “Değişiklikleri Kaydet” düğmesini tıklayın.
Bu örnekte, zaman aralığı olarak 60 saniyeyi kullanmayı seçtik. Fakat 15 – 300 saniye aralığında başka herhangi bir saniyeyi kullanabilirsiniz. Elbette bunu yaparken, web sitesinin düzgün çalışmasıyla ilgili olarak yukarıda bahsettiğimiz hususlara dikkat etmelisiniz.
Zaman aralığını ayarladıktan sonra, “Değişiklikleriniz başarıyla kaydedildi” şeklinde bir bildirim gösterilecektir.
Daha sonra bu adımları izleyerek Heartbeat API için kalan zaman aralıklarını sırasıyla ön uçta ve post düzenleyicide ayarlayabilirsiniz. Aşağıda görüldüğü gibi 60’lar aralığını bir kez daha ayarlamayı seçtik.
Son olarak her üç lokasyon için de Heartbeat API frekansını ayarladıktan sonra, değişiklik yaptıktan sonra ilgili WordPress alanlarında temanızın ve eklentilerinizin işlevselliğini kontrol etmelisiniz.
-
Özel kod kullanma
Heartbeat API frekansını kod kullanarak ayarlamak için, aşağıda verilen basit bir kod parçacığına ihtiyacınız var. Heartbeat_settings filtre kancasına bağlı olan qode_set_heartbeat_time_interval() adlı bir işlevi temsil eder. Özel işlevimizin içeriği basittir – Heartbeat API aralığının 60 saniyeye ayarlandığını belirttik, bunu $settings değişkeninde sakladık ve daha sonra değişkeni döndürdük. Elbette, yukarıdaki Heartbeat Control eklentisi kullanılarak yapıldığı gibi, 60 (saniye) değerini 15 – 300 aralığında herhangi bir değere değiştirebilirsiniz.
function qode_set_heartbeat_time_interval( $settings ) { $settings['interval'] = 60; return $settings; } add_filter( 'heartbeat_settings', 'qode_set_heartbeat_time_interval' );
Yukarıdakilerin dışında, bahsetmemiz gereken iki ek şey daha var. İlk olarak belirli konumları hedeflemek için herhangi bir koşullu ifade kullanmadığımız için, bu kod parçacığı üç konumun tümü için (WordPress kontrol paneli, web sitesi ön ucu ve yayın düzenleyici) tek tip bir Heartbeat API zaman aralığı ayarlayacaktır. İkincisi, bu kod parçacığının düzgün çalışması için, alt temanızın functions.php dosyasına, FTP aracılığıyla veya siteye özel bir eklenti içine eklenmesi gerekir. Biz ikincisini tercih ettik ve siteye özel eklentiler konusunda yazımızda incelediğimiz Code Snippet eklentisini kullandık.
Parçacıklar > Yeni Ekle’ye gittik, kod parçacığı başlığını ekledik, Kodu Kod bölümüne ekledik ve “Değişiklikleri Kaydet ve Etkinleştir” düğmesine tıkladık. Kalan seçeneklere gelince, isteğe bağlı olarak daha sonra yapılabilecek açıklama veya etiket eklememe dahil varsayılan değerlerinde bıraktık.
Tabii ki, daha önce açıklanan eylemleri gerçekleştirdikten kısa bir süre sonra, kod pasajımızın eklendiğini ve etkinleştirildiğini belirten bir bildirim aldık.
Söylemeye gerek yok, şimdi geriye kalan temanızın ve eklentilerinizin işlevselliğini daha önce bahsedildiği gibi WordPress kontrol panelinde, web sitesinin ön yüzünde ve yazı düzenleyicide kontrol etmektir.
WordPress Heartbeat API’sini Devre Dışı Bırakma
WordPress Heartbeat API’sini sınırlamak sunucu CPU kullanımını önemli ölçüde azaltmadıysa, bu bölümde ele alınacak olan devre dışı bırakmayı düşünmelisiniz. Bir öncekine benzer şekilde, WordPress Heartbeat API’sini Heartbeat Control eklentisini ve ayrıca özel bir kod parçacığını kullanarak nasıl devre dışı bırakabileceğinizi göstereceğiz. Fakat bu, bazı web sitesi işlevlerine zarar verebileceğinden, Heartbeat API’yi devre dışı bırakmaya karar vermeden önce iyice düşünmek önemlidir. Daha önce belirtildiği gibi, taslakları otomatik kaydetme, düzeltmeleri yönetme veya sonradan kilitleme özelliğini kaybedebilirsiniz.
Son olarak Heartbeat API’sini devre dışı bırakmak, ona dayanan herhangi bir temanın veya eklentinin işlevselliğine zarar verebilir. API’yi kullanan en dikkate değer eklentiler, Heartbeat API’yi tamamen devre dışı bırakmanızı önermediğimiz Elementor gibi sayfa oluşturuculardır. Bununla birlikte yapmaya karar verirseniz API’yi nasıl devre dışı bırakabileceğinizi açıklayalım.
-
WordPress eklentisi kullanma
Bahsedildiği gibi, Heartbeat Control eklentisi, Heartbeat API’sini WordPress kontrol panelinde, ön uçta ve post düzenleyicide devre dışı bırakmak için de kullanılabilir. Elbette, bunu yapmak için, sizi eklentinin Genel ayarlar sekmesinde konumlandıracak olan Ayarlar > Kalp Atışı Kontrolü bölümüne gitmeniz gerekir. Daha sonra WordPress panosundaki Kalp Atışı API’sini devre dışı bırakmak istiyorsanız, WordPress Panosu alt bölümündeki “Kalp Atışını Devre Dışı Bırak” seçeneğinin yanındaki radyo düğmesini işaretleyin ve “Değişiklikleri Kaydet” düğmesini tıklayın.
Kısa bir süre sonra bir başarı mesajı göreceksiniz.
Benzer şekilde, Heartbeat API’yi diğer iki konum için devre dışı bırakabilirsiniz – web sitesinin ön ucu ve düzenleyici sonrası ekranı. Elbette, bunu yapmak için ilgili “Kalp Atışını Devre Dışı Bırak” seçeneğinin yanındaki radyo düğmesini işaretleyin ve ardından “Değişiklikleri Kaydet” düğmesini tıklayın.
API’yi devre dışı bıraktıktan sonra, temanızın ve eklentilerinizin tüm işlevlerini kontrol etmeniz önemlidir, çünkü çoğu kişi bu değişiklikten etkilenebilir.
-
Özel kod kullanma
Kod kullanarak Heartbeat API’sini devre dışı bırakmayı seçerseniz, varsayılan zaman aralığını değiştirmekle aynı derecede basit bir kod parçacığına ihtiyacınız olacaktır. Bu makale için, init eylem kancasına “bağlanmış” qode_disable_the_heartbeat_api() adlı özel bir işlevi içeren aşağıdaki parçacığı oluşturduk. Özel işlevimizde, kalp atışı betiğini kaldırmak için yalnızca wp_deregister_script() işlevini çağırdık.
function qode_disable_the_heartbeat_api() { wp_deregister_script( 'heartbeat' ); } add_action( 'init', 'qode_disable_the_heartbeat_api', 1 );
Hatta önceki bölümde bahsettiğimiz aynı iki bildirim hala geçerlidir. Yani bu kod, Heartbeat API’sini üç konumdan da kaldıracaktır. Düzgün çalışması için, alt temanızın functions.php dosyasına, FTP yoluyla veya siteye özel bir eklentiye eklenmesi gerekir. Bir kez daha Kod Parçacıkları rotasını seçtik.
Kod kullanarak web sitenizde Heartbeat API’sini devre dışı bırakmak için Parçacıklar > Yeni Ekle’ye gidin. Daha sonra Kod bölümüne kod parçacığının başlığını ve kodunu girin ve “Değişiklikleri Kaydet ve Etkinleştir” düğmesine tıklayarak devam edin.
Kısa bir süre sonra aşağıdaki başarı mesajını göreceksiniz.
Fakat emin olmak için…