Aufruf zu undefinierter function add_action ()

Ich habe eine Seite mit den Themenoptionen erstellt, auf der der Benutzer einige der Designeinstellungen bearbeiten kann. Jetzt versuche ich, diese Optionen asynchron zu speichern, aber es scheint, dass ich Probleme habe, die Handler-Datei in WP zu integrieren.

Die Designoptionen sind eine einfache Adminseite, die unter Aussehen verschachtelt ist.

Beim Drücken der Speichern-Taste:

<a id = "save-settings" href = "#" data-nonce = ""> 

Das folgende JS-Skript wird aufgerufen:

 function(){ jQuery.ajax({ type : 'POST', url : themeRoot + 'framework/AsyncAction.php', data: { action : 'save_settings', name : 'John',} }).done(function(resp) { alert(resp); }); }, 

Die Handler-Datei .php enthält:

  

Das Ausführen dieses Codes triggers den folgenden Fehler aus:

 Fatal error: Call to undefined function add_action() 

Ich habe auch versucht:

  1. hook die Aktion auf init -> dasselbe Problem
  2. Entferne den Haken vollständig. Dies führte dazu, dass der undefinierte Fehler für esc_attr()

Es scheint, dass ich keinen Zugang zu irgendwelchen der WP functionen habe, aber ich habe keine Idee, wie man es repariert.

Vielen Dank!

Solutions Collecting From Web of "Aufruf zu undefinierter function add_action ()"

WordPress hat eine native AJAX-Datei, die alles was Sie wollen tun, und dies wird sicherstellen, dass alle nativen WP-functionen enthalten sind. Wenn Sie zusätzliche functionalität von ‘framework / AsyncAction.php’ benötigen, können Sie include_once() , wie Sie es mit ‘SettingsController.php’ tun.

Weitere Informationen und Beispiele finden Sie im Codex – AJAX in Plugins

Wenn Sie AJAX am Frontend Ihrer Website verwenden möchten, müssen Sie der Datei functions.php folgende Zeilen hinzufügen:

 /** Declare the URL to the file that handles the AJAX request (wp-admin/admin-ajax.php) */ wp_enqueue_script('my-ajax-request', admin_url('admin-ajax.php'), array('jquery')); wp_localize_script('my-ajax-request', 'MyAjax', array('ajaxurl' => admin_url('admin-ajax.php')));