设置页中的AJAX(未定义UPDATE_OPTION)

时间:2012-04-20 作者:Nikolay Dyankov

我正在通过ajax请求插件的php文件,它应该使用update\\u option()保存一些数据,但php抛出了一个错误:

Call to undefined function update_option()
我猜当我用ajax WP调用我的php文件时,不会加载它的函数。。。还是什么?

干杯

1 个回复
SO网友:EAMann

不要直接将AJAX发送到PHP文件。相反,请使用WordPress的内置AJAX功能。您可以从插件中注册AJAX回调,WordPress会将请求路由到插件文件。

例如,此代码将注册一个名为“wpa\\U 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\'.

要进一步阅读,请查看:

  • The Codex
  • WordPress and AJAX - 有关此主题的免费电子书wp_register_script( $handle ); »wp_enqueue_script( $handle ) »wp_localize_script( $handle ); - 最后一个方法是将php内容移动到js变量中,该变量可以在AJAX脚本中访问

结束

相关推荐

具有不同WordPress地址和站点地址设置的AJAX请求

我有一个用户使用我的插件进行以下wp设置WordPress Address (URL) http://server1.theirhost.com/~acct/somewebsite.com/wordpress Site Address (URL) http://www.somewebsite.com 我使用admin\\uURL(\'admin ajax.php\')来提取ajax url,该url返回http://server1.theirhost.com/~