admin-ajax.php Warnung “Fehlendes Argument 2”

Ich habe den folgenden Code in functions.php

 var post_id = "1055"; // hardcoded post id for testing purposes var type = "some_type"; var data = {action: "get_variations", parent_id: post_id, item_type: type}; jQuery.post("/wp-admin/admin-ajax.php", data, function(response){ alert(response); });   

Wenn Ajax versucht, get_variations aufzurufen, bekomme ich immer:

Warnung: Fehlendes Argument 2 für get_variations ()

Was mache ich falsch?

Solutions Collecting From Web of "admin-ajax.php Warnung “Fehlendes Argument 2”"

Ajax-Aufrufe verwenden die $_POST -Variable, um ihre Argumente an die function zu übergeben. Da $_POST['action'] immer von WordPress Ajax-Aufrufen benutzt wird (enthält natürlich den Namen der Aktion;)), beschwert sich PHP nur über fehlende Argument-Nr. 2.

Sie können entweder die von Bainternet bereitgestellte Lösung verwenden. Wenn Sie Ihre function sowohl im Ajax- als auch im “reinen” PHP-Kontext verwenden wollen, können Sie dies folgendermaßen tun:

  < ?php function get_variations($parent_id = false, $item_type = false){ if(isset($_POST['parent_id'])) { $parent_id = $_POST['parent_id']; $item_type = $_POST['item_type']; } // etc.. } 

Auf diese Weise nimmt PHP immer die beiden angegebenen Argumente an, und Sie können diese function auch ohne $_POST .

Ihr Ajax-callback hat keine Argumente,

das sollte funktionieren:

 function get_variations(){ $parent_id = $_POST['parent_id']; $item_type = $_POST['item_type']; // etc.. } add_action('wp_ajax_get_variations', 'get_variations');