问题描述
我通过 ajax 向我的插件的 php 文件发出请求,并且应该用 update_option() 保存一些数据,但是 php 抛出一个错误:
Call to undefined function update_option()
我猜,当我调用我的 php 文件与 ajax WP 不加载它的功能… 或什么?
干杯
最佳解决方案
不要直接将 AJAX 发送到您的 PHP 文件。而是使用 WordPress 的内置 AJAX 功能 1) 。您可以从插件注册 AJAX 回调,WordPress 会将请求路由到您的插件文件。
例如,此代码将注册一个名为”wpa_49691″ 的回调:
add_action( 'wp_ajax_wpa_49691', 'wpa_49691_callback' );
add_action( 'wp_ajax_nopriv_wpa_49691', 'wpa_49691_callback' );
function wpa_49691_callback() {
// Do whatever you need with update_option() here.
// You have full access to the $_POST object.
}
然后,您发布所需的任何数据,只需在对象中指定 action
:
<script type="text/javascript">
jQuery(document).ready(function($) {
var data = {
action: 'wpa_49691',
my_var: 'my_data'
};
jQuery.post( ajaxurl, data, function(response) {
// handle response from the AJAX request.
});
});
</script>
该脚本将您的数据发布到服务器。在服务器回调中,您将看到 $_POST['my_var'] = 'my_data'
。
要进一步阅读,请查看:
-
WordPress and AJAX – 免费电子书的话题
1) 使用 wp_register_script( $handle );
»wp_enqueue_script( $handle )
»wp_localize_script( $handle );
– 最后一个将 php 内容移动到可以在 AJAX 脚本中访问的 js-var 。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。