URL Wordpress Ajax pour la fonction dans functions.php
3 réponses
- votes
-
- 2016-10-11
//ajax call var data = { action: 'folder_contents', path: datafolder }; var ajaxurl = baseurl + ''; //WHAT IS THIS?!?! jQuery.post(ajaxurl, data, function(response) { alert('Got this from the server: ' + response); console.log(response); });
Et votre PHP dansfunctions.php
//Called by Ajax from App - list the contents of the folder so they can be downloaded and stored locally function folder_contents() { $folderPath = $_POST['path'] ; $files = array_diff(scandir($path), array('.', '..')); print_r($files); return $files; die(); } add_action('wp_ajax_folder_contents', 'folder_contents'); add_action('wp_ajax_nopriv_folder_contents', 'folder_contents');
Ce quiprécède ajoute votrefonctionen tant qu'action ajax. Vous appelezensuite lenom de lafonction dans votre AJAX.
Voir https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_ (action)
//ajax call var data = { action: 'folder_contents', path: datafolder }; var ajaxurl = baseurl + ''; //WHAT IS THIS?!?! jQuery.post(ajaxurl, data, function(response) { alert('Got this from the server: ' + response); console.log(response); });
And your PHP in functions.php
//Called by Ajax from App - list the contents of the folder so they can be downloaded and stored locally function folder_contents() { $folderPath = $_POST['path'] ; $files = array_diff(scandir($path), array('.', '..')); print_r($files); return $files; die(); } add_action('wp_ajax_folder_contents', 'folder_contents'); add_action('wp_ajax_nopriv_folder_contents', 'folder_contents');
The above add your function as an ajax action. You then call the function name in your AJAX.
See https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
-
Désolé,dans votre JS,vous devez également ajouter l'ajaxurlpour votre site.Lafaçon dontje fais celaest de le définiret de localiser le scriptpour l'accès.Voir: https://codex.wordpress.org/Function_Reference/wp_localize_scriptSorry, in your JS you also need to add the ajaxurl for your site. The way i do this is by defining it and localizing the script for access. See: https://codex.wordpress.org/Function_Reference/wp_localize_script
- 0
- 2016-10-11
- Steve
-
Voir égalementicipour unexemple d'ajaxurlet sa localisation.https://www.creare.co.uk/blog/wp/wp-localize-script-wordpressAlso see here for an example of the ajaxurl and localizing that. https://www.creare.co.uk/blog/wp/wp-localize-script-wordpress
- 0
- 2016-10-11
- Steve
-
OK,j'ai dumal àfairefonctionner ça.J'aimodifiéma requête d'origine ci-dessuspourmontrer ce quej'aiessayéen fonction de votre réponseOK, Im struggling to get this working. I have edited my original query above to show what I have tried based on your answer
- 0
- 2016-10-11
- LeeTee
-
Au lieu de "return $files",faites "echo $files".Instead of "return $files", do "echo $files".
- 0
- 2016-10-11
- Steve
-
OU,faites wp_send_json ($files);https://codex.wordpress.org/Function_Reference/wp_send_jsonOR, do wp_send_json($files); https://codex.wordpress.org/Function_Reference/wp_send_json
- 0
- 2016-10-11
- Steve
-
Okj'ai changéen wp_send_json ($files);et obteneztoujours 0malheureusementOk I have changed to wp_send_json($files); and still get 0 unfortunately
- 0
- 2016-10-11
- LeeTee
-
Essayez: `functionfolder_contents () { echo 'bonjour'; mourir(); } ` Voyez-vous lemotbonjour sortir dans le console.log?Try: `function folder_contents() { echo 'hello'; die(); }` Do you see the word hello come out in the console.log?
- 0
- 2016-10-11
- Steve
-
J'aiessayé celaet j'ai obtenu 0,j'aiessayé detout supprimer de cettefonctionet j'aitoujours obtenu 0. Sije vais directement aufichier avec http://myweb.co.uk/wp-admin/admin-ajax.php?action=folder_contents Iobteneztoujours 0.Ive tried that and get 0, tred removing everything from that function and still get 0. If I go directly to the file with http://myweb.co.uk/wp-admin/admin-ajax.php?action=folder_contents I still get 0.
- 0
- 2016-10-11
- LeeTee
-
mercipour votre aideen passant,c'esttrès apprécié :)thansk for your help by the way, it is much appreciated :)
- 0
- 2016-10-11
- LeeTee
-
Laissez-nous [continuer cette discussion dans le chat] (http://chat.stackexchange.com/rooms/46636/discussion-between-steve-north-and-leetee).Let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/46636/discussion-between-steve-north-and-leetee).
- 0
- 2016-10-11
- Steve
-
- 2016-10-11
Dans votre code,je vois que vous localisez le script 'ajax-js',mais le script lui-mêmeest-ilmisen file d'attente?J'ai dû utiliser des scripts wp_localizeil y a quelques semaineset j'ai dûmettremon script JSen file d'attente dans lafonction qui appelait le script wp_localize.Parexemple:
add_action( 'wp_enqueue_scripts', 'google_js_script' ); function google_js_script() { // Enqueue the js script wp_enqueue_script('google-js', GOOGLE_PLG_URL . 'assets/js/google-places.js', array('jquery'), true); // Localize the enqueued JS script wp_localize_script( 'google-js', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'place' => '' ) ); }
J'espère que cela aidera à résoudre leproblème.
In your code I see you localize the 'ajax-js' script, but is the script itself enqueued? I had to use wp_localize scripts a few weeks ago and I had to enqueue my JS script inside the function that called wp_localize script. For example:
add_action( 'wp_enqueue_scripts', 'google_js_script' ); function google_js_script() { // Enqueue the js script wp_enqueue_script('google-js', GOOGLE_PLG_URL . 'assets/js/google-places.js', array('jquery'), true); // Localize the enqueued JS script wp_localize_script( 'google-js', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'place' => '' ) ); }
Hope this helps to debug the issue.
-
Le JSn'estpas utilisé sur le site lui-même.Il utilise le JS dans une application debureau.The JS is not used on the site itself. He is using the JS inside a desktop application.
- 0
- 2016-10-12
- Steve
-
- 2016-10-11
Le WP Codex indique que vouspouvez utiliser la variableglobale
ajaxurl
sans le déclarer aupréalable.En d'autrestermes,commentez cette ligne:var ajaxurl = ajax_params.ajax_url;
...et voyez si celafonctionne.
The WP Codex states that you can use the global variable
ajaxurl
without declaring it first. In other words, comment out this line:var ajaxurl = ajax_params.ajax_url;
...and see if that works.
J'ai une application debureauet j'utilise $ .getJSON pour obtenir des données demon site wordpressen utilisant leplugin WP REST API . Celafonctionnebien etje suppose donc queje peux égalementfaire un appel Ajax à unefonction dans lefunctions.php? Commentpuis-jefaire cela? Aucun desexemples quej'ai vusne fournit l'ajaxURL. Commentpuis-je savoir ce que c'est?
J'ai le code suivant:
Functions.php (dans le site wordpress sur le serveur)
app.js (exécutéen utilisant le kit Web denœud localement depuis lamachine)
------------------- MODIFIER ----------------------
Après la réponse ci-dessous,j'aiessayé le code ci-dessousbasé sur les conseilsmaisj'obtiens
Functions.php
Sije supprime lafonction add_ajax_script () et quej'utilise simplement lafonction ci-dessous,elle renvoie 0.
Veuillez aider ...