根据wordPress jedi,scribu的说法,你现在可以从插件处理程序内部将脚本排队。
http://scribu.net/wordpress/conditional-script-loading-revisited.html
你在重复一些东西,在短代码处理中,你必须返回。通过返回脚本,我遇到了一些让脚本正常工作的问题,所以我将其移动到了一个外部文件中,这个文件肯定能正常工作。
function myajax(){
wp_enqueue_script(\'my-script\', plugins_url(\'my-script.js\', __FILE__), array(\'jquery\'), \'1.0\', true);
$data = array(
\'ajaxurl\' => admin_url(\'admin-ajax.php\')
);
wp_localize_script( \'my-script\', \'myscriptL10n\', $data );
$text = \'<a id="testbutton">click</a>\';
return $text;
}
add_shortcode("my_ajax", "myajax");
add_action(\'wp_ajax_stravyfuncajax22\', \'testfunc11\');
add_action(\'wp_ajax_nopriv_stravyfuncajax22\', \'testfunc11\');
function testfunc11() {
echo "2";
die();
}
然后是我的剧本。js公司
jQuery(document).ready(function($){
$("#testbutton").click(function(){
$.ajax({
url: myscriptL10n.ajaxurl,
type: \'POST\',
data: {
action: \'stravyfuncajax22\'
},
dataType: \'html\',
success: function(response) {
alert(response);
}
});
});
});
希望这有帮助。
EDIT 1我没有测试这一部分,但我认为它应该能够将表单值作为ajax响应进行响应。
`函数myajax(){
wp_enqueue_script(\'my-script\', plugins_url(\'my-script.js\', __FILE__), array(\'jquery\'), \'1.0\', true);
$data = array(
\'ajaxurl\' => admin_url(\'admin-ajax.php\')
);
wp_localize_script( \'my-script\', \'myscriptL10n\', $data );
ob_start(); ?>
<form id="form">
<input type="text" name="foo" value="bar"/>
<a id="testbutton">click</a>\';
</form>
<?php $text = ob_get_contents();
return $text;
}
add_shortcode("my_ajax", "myajax");
add_action(\'wp_ajax_stravyfuncajax22\', \'testfunc11\');
add_action(\'wp_ajax_nopriv_stravyfuncajax22\', \'testfunc11\');
function testfunc11() {
$data = $_POST[\'data\'];
echo $data[\'foo\'];
die();
}
`
新建javascript
jQuery(document).ready(function($){
$("#testbutton").click(function(){
data = $(\'#form\').serialize();
$.ajax({
url: myscriptL10n.ajaxurl,
type: \'POST\',
data: {
action: \'stravyfuncajax22\',
data: data
},
dataType: \'html\',
success: function(response) {
alert(response);
}
});
});
});