WordPress'te Eklentisiz Spam Yorumlar Nasıl Engellenir? WordPress'te Eklentisiz Spam Yorumlar Nasıl Engellenir?

WordPress’te Eklentisiz Spam Yorumlar Nasıl Engellenir?

WordPress sitenizde çok fazla spam yorum mu alıyorsunuz? Eklenti kullanmadan bu spam yorumları nasıl engelleyeceğinizi bu rehber yazımızda adım adım anlatacağız.

WordPress sitenizde çok fazla spam yorum mu alıyorsunuz? Eklenti kullanmadan bu spam yorumları nasıl engelleyeceğinizi bu rehber yazımızda adım adım anlatacağız.

Spam Yorum Nedir?

Spam Yorum, gereksiz, alakasız bir şekilde yapılan genellikle temel amacı backlink1 kazanmak ve reklam ağı oluşturmak için otomatik olarak botlar tarafından gönderilen yorumlardır.

Spam Yorumlar, internet sitenizin hem seo değerini olumsuz etkilemekte hem de okurlarınız için yardımcı olabilecek yorumların bulunmasını zorlaştıracaktır ve hatta onları yanıltıp, zararlı içeriklerin olduğu internet sitelerine erişmelerine neden olabilir.

Kısaca, spam yorumlar istenmeyen bir kanserli hücre gibidir.

Eklentisiz Spam Yorumlar Nasıl Engellenir?

Eklenti kullanarak spam yorumları çok kolay bir şekilde engelleyebilirsiniz ancak çok fazla eklenti kullanımı hem sitenizin barındığı sunucuyu yavaşlatacağı gibi diğer eklentileriniz ile çakışmalar, hatalar oluşmasına ve hatta diğer güvenlik açıklarının oluşmasını sebebiyet verebilir.

Eklentisiz bir şekilde spam yorumları engellemek birkaç satır kod ile mümkün. Bu rehber makalemizde sizlere bunu nasıl yapacağınızı göstereceğiz.

functions.php dosyasında işlem yapmadan önce aktif olarak kullandığımız WordPress Temasının bir alt temasını oluşturmamız gerekiyor. Bir alt tema nasıl oluşturulacağını öğrenmek için WordPress’te Alt Tema Nasıl Oluşturulur? (Eklentisiz) adlı makalemizi inceleyin.

Alternatif bir yöntem olarak alt tema oluşturmak yerine Code Snippets eklentisini kullanarak gerekli işlemleri bu eklenti aracılığı ile de gerçekleştirebilirsiniz.

Temanızın functions.php dosyasını bir kod editörü (Tavsiyemiz: Microsoft Visual Studio Code) yardımı ile açın ve aşağıda ki kodu dosyanın en sonuna ekleyin.

Kodu nasıl ekleyeceksiniz;

  • WordPress Admin Paneline giriş yapın.
  • Görünüm -> Tema Düzenleyici, aktif kullanımda olan temayı seçin.
  • Temanızın functions.php dosyasını açın
  • Yukarıda paylaştığımız kodu kopyalıp, en alt kısıma ekleyip, kaydedin.
/*
 * Spam Yorumları Engelle WpTreni
 * https://wptreni.com/eklentisiz-wordpress-spam-yorumlar-nasil-engellenir/
 */	
add_action('pre_comment_on_post', function(){
	if (!is_user_logged_in() ) {
$wptreni = $_POST['wptreni'];	
if (empty($wptreni))
wp_die( __("<b>HATA:</b> Lütfen spam yapmayın!,geri dönün ve sayfayı yeniden yükleyin ve bir kez daha deneyin.<p><a href='javascript:history.back()'>« Geri</a></p>"));
else if ( $wptreni != "ok" )
wp_die( __("Yorumunuzu çok hızlı yazıyorsunuz, geri dönüp sayfayı yeniden yükleyip bir kez daha deneyin. <p><a href='javascript:history.back()'>« Geri</a></p>"));
	  }
	} 

);

add_filter('comment_form_defaults',function ($submit_field) {		   
		$submit_field["fields"]["author"] = $submit_field["fields"]["author"].
		'<input id="wptreni" name="wptreni" type="hidden" value="1"><script>
		setTimeout( () => { document.querySelector("input#wptreni").value = "ok" } , 20000 )
		</script>';
		
return $submit_field;	
});

Peki, yukarıda kod ne işe yarıyor:

  • Oturum açmamış kullanıcıların yorum göndermeden önce 20 saniye beklemesini gerektirir. Çoğu spam yorum botu,mesajını göndermeden önce bu kadar uzun süre beklemez.
  • Yorum kısmına, zaman gecikmesinden sonra belirli bir değere ayarlanması gereken gizli bir alan ekler. Bu, kullanıcının tüm süre boyunca beklediğinden emin olmak için yapılan ekstra bir kontroldür.

Eklentisiz Bir Şekilde Spam Yorumlar Nasıl Engelleniyor?

Sitenizi ziyaret eden ve oturum açmamış bir kullanıcı yorum alanına geldiğinde arkaplan bir JavaScript komutu çalışıtırılıyor.

Bu komut, kullanıcının oturum açıp, açmadığını kontrol ediyor ve oturum açmamış bir kullanıcı ise 20 saniye boyunca kullanıcıyı bekletiyor, 20 saniyelik sürenin sonunda “wptreni” işareti bulunan gizli alanın değeri, “ok” olarak ayarlanır yani 20 saniyelik süre tamamlandı mesajını WordPress’e iletir.

Eğer, bir spam yorum botu 20 saniyeden önce mesaj göndermeye çalışır ise pre_comment_on_post parametresi ile bu işlem yakalanır ve gizli alanın değeri kontrol edilir. 20 saniye dolmadığı için gizli alanın değeri false (yanlış) olacağı için gönderilen mesaj kaydedilmez ve işlem durdurulur.

Burada ki amaç gerçek kullanıcıların yorum yapmalarını olanak tanırken gerçek olmayan spam botların engellenmesini kolaylaştırmaktır. Gerçek bir kullanıcı içeriğinizi en az 60 saniye boyunca okur, spam botlar okumaz. Birkaç satırlık bu kod sizi bilinen birçok spam botundan koruyacaktır ancak yeterli değildir.

Spam botlar bu yöntemi aşabilir, bu sebepten alternatif olarak WordPress kurulumunda gelen Akismet Anti-spam: Spam Protection eklentisini de aktif edip, kullanmanızı tavsiye ederiz.

  1. Backlink, bir internet sitesinin başka bir siteye vermiş olduğu, herhangi bir sayfasında banner veya metin bağlantısı bulunması durumunda arama motorlarında değerinin yükselmesini sağlayan bir sistemdir. ↩︎
  1. Spam yorumları manuel olarak silmek yoruyordu. Eklentisiz bir şekilde gelen spam yorumları azalttım blog yazınızda anlattığınız işlem sayesinde.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir