我正在尝试从wp插件加载.js文件。
我加载jquery,jquery-UI和我的.js文件的代码如下所示,位于“main”插件文件中:
//Load Java and Jquery
function load_jquery() {
// only use this method is we're not in wp-admin
if (!is_admin()) {
// deregister the original version of jQuery
wp_deregister_script('jquery');
wp_deregister_script('jquery-ui');
wp_deregister_script('lyox-script');
// discover the correct protocol to use
$protocol='http:';
if($_SERVER['HTTPS']=='on') {
$protocol='https:';
}
// register the Google CDN version
wp_register_script('jquery', $protocol.'//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', false, '1.10.2');
wp_register_script('jquery-ui', $protocol.'//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js', false, '1.10.3');
wp_register_script('lyox-script', plugins_url( '/includes/script.js' , __FILE__ ), array( 'jquery', 'jquery-ui' ) );
// add it back into the queue
wp_enqueue_script('jquery');
wp_enqueue_script('jquery-ui');
wp_enqueue_script('lyox-script');
}
}
add_action('template_redirect', 'load_jquery');
然后在.js文件中我有以下代码,其中post()函数被添加到表单按钮onclick =“post();”:
$(document).ready(function() {
function post() {
var name = $('#name').val();
$.post('process.php', {postname:name},
function(data)
{
alert(data);
$('#result').html(data);
});
}
});
当我在页面上试用时,仍然没有任何反应。有什么想法吗?
答案 0 :(得分:1)
你可以使用admin ajax这样做: 我不会解释这些功能。你可以谷歌并学习。
第1步:将您的脚本的某些值本地化,以便在您的javascript文件中使用
获取admin-ajax.php网址
$author_nonce = wp_create_nonce( 'nk_author' );
wp_localize_script( 'nk_script', 'nk_object',array( 'nk_ajax_url' => admin_url( 'admin-ajax.php' ) , 'nk_plugin_url' => plugins_url() ,'nk_author' => $author_nonce) );
第2步:在您的脚本中,您可以执行此操作。
var data = {
action: 'nk_action', // the function that will be called in your plugin
_ajax_nonce : nk_object.nk_author, // nonce for security
id : 'mydata' //your data to be sent
};
//(admin ajax url , your data , callback for response )
jQuery.post(nk_object.nk_ajax_url, data, function(response) {
$('#nk_result').html(response);
}
});//end jQuery.post
第3步:在plugin.php文件中执行此操作
<?php
add_action('wp_ajax_nk_action', 'nk_action_callback');
function nk_action_callback() {
check_ajax_referer('nk_author');
if(isset($_POST['id']))
{
$id=$_POST['id'];
echo $id;
}
die();//dont forget to write die
}?>