WordPress: comment appeler un plugin de fonctionner avec un appel ajax?

Je suis en train d'écrire un plugin WordPress MU, il inclut un lien avec chaque poste, et je veux utiliser ajax pour appeler l'un de l'plugin fonctionne lorsque l'utilisateur clique sur ce lien, puis mettre à jour dynamiquement le lien texte avec la sortie de la fonction.

Je suis coincé avec la requête ajax. J'ai eu cette compliqué, clairement hack-ish, la façon de le faire, mais il n'est pas assez de travail. Quelle est la "bonne" ou "wordpress" de manière à inclure des fonctionnalités ajax dans un plugin?

(Mon hack code est ci-dessous. Lorsque je clique sur le lien générer je n'ai pas la même sortie que je reçois dans la page wp que quand je vais directement à sample-ajax.php dans mon navigateur.)

J'ai obtenu mon code[1] défini comme suit:

mu-plugins/sample.php:

<?php
/*
Plugin Name: Sample Plugin
*/
if (!class_exists("SamplePlugin")) {
  class SamplePlugin {
    function SamplePlugin() {}
    function addHeaderCode() {
      echo '<link type="text/css"  href="'.get_bloginfo('wpurl').
             '/wp-content/mu-plugins/sample/sample.css" />\n';
      wp_enqueue_script('sample-ajax', get_bloginfo('wpurl') .
             '/wp-content/mu-plugins/sample/sample-ajax.js.php',
             array('jquery'), '1.0');

    }
    //adds the link to post content.
    function addLink($content = '') {
        $content .= "<span class='foobar clicked'><a href='#'>click</a></span>";
        return $content;
    }
    function doAjax() { //
        echo "<a href='#'>AJAX!</a>";
    } 
  }
}
if (class_exists("SamplePlugin")) {
  $sample_plugin = new SamplePlugin();
}
if (isset($sample_plugin)) {
  add_action('wp_head',array(&$sample_plugin,'addHeaderCode'),1);
  add_filter('the_content', array(&$sample_plugin, 'addLink'));
}

mu-plugins/sample/sample-ajax.js.php:

<?php
if (!function_exists('add_action')) {
    require_once("../../../wp-config.php");
}
?>
jQuery(document).ready(function(){
    jQuery(".foobar").bind("click", function() {
        var aref = this;
        jQuery(this).toggleClass('clicked');
        jQuery.ajax({
          url: "http://mysite/wp-content/mu-plugins/sample/sample-ajax.php",
          success: function(value) {
            jQuery(aref).html(value);
          }
        });
    });
});

mu-plugins/sample/sample-ajax.php:

<?php
if (!function_exists('add_action')) {
  require_once("../../../wp-config.php");
}
if (isset($sample_plugin)) {
  $sample_plugin->doAjax();
} else {
  echo "unset";
}
?>

[1] Note: Le tutoriel ci-dessous m'a fait beaucoup de chemin, mais je suis perplexe à ce point.
http://www.devlounge.net/articles/using-ajax-with-your-wordpress-plugin

OriginalL'auteur Bee | 2010-05-25