Bonjour,

Je bloque sur un soucis lors de la création de mon plugin. Je fais un appel Ajax afin de générer une page dynamique.

Mon soucis est que dans cet appel, wordpress n'est pas reconnu et impossible de l'inclure. J'ai essayé en incluant la page wp-load ou encore wp-blog-header mais aucun n'a fonctionné.

Du coup, je suis bloqué ici car impossible de générer du contenu depuis mes données wordpress car mon WP-Query n'est pas reconnu.

Si quelqu'un à une solution pour charger les fonctions wordpress, je suis preneur :)

5 réponses


MxWayGamer
Auteur
Réponse acceptée

J'ai essayé en suivant l'article que tu m'as passé. Mais impossible d'avoir ma requête prise en compte ...
Alala ce ajax commence à bien m'énerver. Et en plus je suis sûr c'est juste une ligne toute conne à changer..

Salut,
Pour un appel Ajax sous Wordpress, il faut passer par une page faite pour ça : admin-ajax.php
Tu as un tuto très clair à ce sujet ici : http://www.wp-spread.com/tuto-ajax-wordpress-methode-simple/
Sinon il faudrait qu'on voit un peu de code pour comprendre ce qui cloche ;)

C'est une fonction basique de requête Ajax. Je vais voir avec la méthode que tu m'as envoyé.

function chargement_ajax() {
    ?>
    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script>
    $(document).ready(function(){
    // sur l'evenement (select)#selection.onChange
    $( '#jeux' ).on('change', function(){
      // prendre valeur actuelle de #selection
      var s = $(this).val();
      $.ajax({
        url: '<?php echo plugins_url("selection.php?s=", __FILE__ )?>'+s, // créer l'url
        success: function(data){
          // si succés de la demande, afficher data dans (div)#results 
          $( '#results' ).html( data );
        }
      });
    });
  });

Est-ce que ta requête fonctionne dans un page 'classique' Wordpress ? (fichier template par example)
Sinon ton fichier selection.php contient quoi ?

C'est bon, j'ai réussi à la faire fonctionner avec la reqûete ajaxurl.
Et j'ai transformé ma page selection.php en fonction et ça a fonctionné.

Merci