Ben bir Wordpress MU eklenti yazıyorum, her yazı ile bir bağlantı içerir ve kullanıcı bu linke tıkladığında eklenti işlevlerinden birini arayın ve sonra dinamik bu işlevi çıkışı ile bağlantı metnini güncelleştirmek için ajax kullanmak istiyorum .
Ben ajax sorgu ile şaşırıp. Bunu yapmak için bu karmaşık, açıkça hack-ish, yol var, ama oldukça çalışmıyor. Bir eklenti ajax işlevselliği eklemek için 'doğru' ya da 'wordpress' yolu nedir?
(Benim şu anki hack kod aşağıda. Ben benim tarayıcıda örnek-ajax.php doğrudan gittiğimde olarak wp sayfasında olsun aynı çıktıyı alamadım oluşturmak bağlantıyı tıkladığınızda.)
Ben aşağıdaki gibi benim kod [1] kurmak var:
mu-plugins/sample.php:
<?php
/*
Plugin Name: Sample Plugin
*/
if (!class_exists("SamplePlugin")) {
class SamplePlugin {
function SamplePlugin() {}
function addHeaderCode() {
echo '<link type="text/css" rel="stylesheet" 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: The following tutorial got me this far, but I'm stumped at this point. http://www.devlounge.net/articles/using-ajax-with-your-wordpress-plugin