AJAX kald i WordPress

WordPress har indbygget en nem måde at lave AJAX kald. For at lave det skal man benytte en lille stykke Javascript og tilføje en action som kan svare på kaldet.

Her er et eksempel på hvordan Javascript koden kan se ud

$.ajax({
  type: 'GET',
  url: '/wp-admin/admin-ajax.php',
  data: {
    action: 'my_action',
    nummer: 10
  },
  success: function(data, textStatus, XMLHttpRequest){
    alert(data); // her bør man lave sin logik som benytter data fra kaldet
  },
  error: function(MLHttpRequest, textStatus, errorThrown){
    alert(errorThrown); // fejl håndtering
  }
});

I dette tilfælde vil den kalde en action som hedder my_action og der vil desuden blive overført en variabel nummer med værdien 10.Der kan være så mange variabler som man ønsker. Men det er vigtigt at man har en action som er den som bliver kaldt på serversiden.

På server siden skal man have registreret en action der vil håndtere kaldet. Det er vigtigt at kaldet til add_action ikke er i en if eller inden i en anden function (Den må ikke være næstet).
Navnet på denne action skal starte med wp_ajax_ og så navnet på den action man definere i sit Javasctip. I dette tilfælde vil den så komme til at hedde wp_ajax_my_action.

add_action('wp_ajax_my_action', function() {
  $number = $_GET['number'];
  echo $number + 2;
  die();
});

Det er desuden vigtigt at der bliver lavet en die() i slutningen af din funktion. Ellers vil det ikke virke.

Hvis alt er som det skal være burde der komme en alert som skriver 12.Hvis kaldet retunere 0 eller -1 er der noget galt med add_action eller den funktion du har lavet.

Leave a comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.