我很确定这是我遗漏的一些非常基本的东西,但它让我疯狂。请帮帮我: - )
我正在尝试从我自己的wordpress插件中获得一个基本的AJAX调用。
我有两个文件:
BHA-class.php
<?php
add_action( 'admin_footer', 'my_action_javascript' );
function my_action_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {
var data = {
'action': 'my_action',
'whatever': 1234
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
$.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
</script>
<?
}
?>
和 bha-class-xhr.php
<?php
global $wpdb;
add_action( 'wp_ajax_my_action', 'my_action_callback' );
function my_action_callback() {
global $wpdb; // this is how you get access to the database
$whatever = intval( $_POST['whatever'] );
$whatever += 10;
echo $whatever;
die(); // this is required to return a proper result
}
?>
事情正在发挥作用,AJAX调用已启动,并且调用了'bha-class-xhr.php。
然而我收到错误:
Got this from the server: <br />
<b>Fatal error</b>: Call to undefined function add_action() in <b>/var/www/institutforgestaltanalyse.dk/public_html/wp-content/plugins/bha-member-system/include/bha-class-xhr.php</b> on line <b>4</b><br />
所以看起来我调用的xhr文件在Wordpress框架中无法识别。
我错过了什么?
答案 0 :(得分:0)
您好像是直接通过javascript调用bha-class-xhr.php
文件。如果你需要WordPress,这不是正确的文件。
相反,如果需要,您应该对admin-ajax.php
进行ajax调用,添加操作和其他参数。
类似的东西(取决于你的安装,我在这里使用GET而不是POST):
/wp-admin/admin-ajax.php?action=my_action_callback