1 min read

Wordpress Ajax Kullanımı

WordPress teması yada eklentisi geliştirirken ajax istekleri için WordPress Ajax hooklarını kullanabiliriz. Aşağıda örnek bir WordPress Ajax hook kullanımı sunuyorum.

Öncelikle temamızın yada eklentimizin javascript kodlarına ajax isteği yapacak bir fonksiyon hazırlayalım. Bu fonksiyon ile ajax request gerçekleştirip, response alarak işlemlerimize devam etmemizi sağlayacak.

WordPress istekleri varsayılan olarak ajaxurl javascript değişkeninde yer alan adrese yapılır. Bu değişkeni global scope’da göremiyorsanız, değişkeni kendiniz tanımlayabilirsiniz.

<?php
$ajax = admin_url('admin-ajax.php');
?>
<script type="text/javascript">
var ajaxurl = "<?php echo $ajax; ?>";
</script>

Örneğin basit olması için basit bir ajax işlemi gerçekleştiren javascript kodlarımı yazıyorum.

$('.submit').on('click', function(){
  var value = $(this).val();
  var data = {
  action: 'mycustom_action',
  text: value
  }
});

$.post(ajaxurl, data, function(response){
  console.log(response);
});

action index’li elemanda ajax isteği sonucunda çalıştırılması istenen fonksiyon adı verilir. Bu parametre verilmediği taktirde ajax işlemlerimiz çalışmayacaktır.

Javascript kodlarımızı hazırladıktan sonra, response yapacak PHP kodlarımızı hazırlayalım.

<?php 

add_action('wp_ajax_mycustom_action', 'mycustom_action');
add_action('wp_ajax_nopriv_mycustom_action', 'mycustom_action');

function mycustom_action() {
  wp_send_json($_POST);
}

add_action metodunda tanımlanan action ismine dikkat etmemiz gerekiyor. Çünkü bu alanda verdiğimiz ilk parametrede çalıştıracağımız fonksiyonun ismini ekliyoruz. Yani çalıştıracağımız fonksiyonun adı neyse, action alanının ilk parametresi şu şekilde olmalı wp_ajax_[fonksiyonun adı] ve wp_ajax_nopriv_[fonkisyonun adı].

Bu tanımlamaları yaptıktan sonra işlemlerimizi, fonksiyonun içinde gerçekleştirip json çıktı vermek için wp_send_json fonksiyonunu kullanabiliriz.