web-dev-qa-db-fra.com

Erreur Admin-Ajax

Je fais la page d'accueil dans l'hôte local.

J'ai besoin de wp_query avec Ajax.

mais il y a une erreur. Je ne sais pas pourquoi. Pouvez-vous m'aider?

----> c'est load_more_ajax.js

var page = 2;
var date_pass = "<?php echo($date_filter);?>";
var compare_pass = "<?php echo($compare);?>";
var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";

jQuery(function($){

   $('body').on('click', '.loadmore', function(){

      var data = {
           'action': 'rnm_load_more_ajax',
           'page': page,
           'date_filter': date_pass,
           'compare': compare_pass,
           'security': '<?php echo wp_create_nonce("load_more_posts"); ?>'
       };

       $.post(ajaxurl, data, function(response){
           $('.race-posts').append(response);
           page++;
       });
   });
});

et, c'est load_more_ajax.php

<?php
function load_posts_by_ajax_callback(){
   echo ("hello");    
}

c'est add_action

add_action('wp_ajax_rnm_load_more_ajax', 'load_posts_by_ajax_callback');
add_action('wp_ajax_nopriv_rnm_load_more_ajax', 'load_posts_by_ajax_callback');

add_action('wp_enqueue_scripts', 'rnm_enqueue_fn');
function rnm_enqueue_fn(){

   wp_register_script('rnm_load_more', get_template_directory_uri() .'/js/load_more_ajax.js', array(), false, true);
   wp_enqueue_script('rnm_load_more');
}

Cela fait une erreur comme ça.  error message 

Je pense qu'il y a un problème dans l'url de 'admin-ajax.php'

Mais je ne trouve pas de solution.

1
JJang

Vous devez transmettre les valeurs au script de localisation, "right" après cette ligne:

wp_enqueue_script('rnm_load_more');

Je vais transmettre l'URL d'administrateur à votre script en utilisant wp_localize_script :

$localization = array(
    'ajax_url' => admin_url('admin-ajax.php'),
);
wp_localize_script( 'rnm_load_more', 'jjang', $localization );

Maintenant, vous pouvez utiliser le ajax_url dans votre script:

var ajaxurl = rnm_load_more.ajax_url;

Vous pouvez envoyer le reste des données en utilisant cette méthode.

0
Jack Johansson

Vous ne pouvez pas utiliser le code PHP dans un fichier .js, sauf si vous modifiez votre configuration. Même si c'était le cas, vous devrez également charger WP pour obtenir ces URL. Ce qui se passe actuellement, c’est que vous avez le code PHP, et non son résultat, dans le fichier JS.

Vous voudrez probablement utiliser wp_localize_script pour définir les données de WP auxquelles vous pourrez ensuite accéder dans un fichier JavaScript statique.

0
janh