使用AJAX:调用未定义的函数GET_OPTION

时间:2012-09-18 作者:Atif

我在模板上使用ajax加载一个名为counter的文件。php。当我点击一个按钮时,它应该会增加计数器。但当我单击按钮时,我得到了这个错误“致命错误:调用未定义的函数get\\u option()”。

这是我柜台上的东西。php

$post_ID = $_POST[\'ID\'];
$opn_name = \'fb_counter\'.$post_ID;
$counter_value = get_option($opn_name);
if($counter_value==NULL){
$counter_value = 0;
}
update_option($opn_name, $counter_value+1);

echo get_option($opn_name);
我不知道怎么了。我必须在这个php文件中包含wordpress文件吗?

1 个回复
最合适的回答,由SO网友:Otto 整理而成

基本上,如果您要调用WordPress函数,那么您应该在WordPress环境中,这意味着您不应该首先调用自己的文件,而应该在WordPress挂钩中实现AJAX调用。

阅读以下内容:http://codex.wordpress.org/AJAX_in_Plugins

这篇文章描述了如何在WordPress插件中实现AJAX请求,但它在主题或WP加载的任何其他代码中都同样适用。

本质上,您可以将一个函数挂接到wp\\u ajax\\u*或wp\\u ajax\\u nopriv\\u*上,然后通过admin ajax发出请求。php文件,而不是直接到您自己的文件。

旁注:像您正在尝试的那样实现计数器不会特别好,因为您有一个比赛条件。可以有多个人同时访问您的站点。像这样在DB中存储计数器数据不会扩展到具有大量请求的大型站点,尽管对于较小的站点来说,它可以很好地工作。

结束

相关推荐

模板中的AJAX请求

在这里,我试图对来自模板的安全ajax请求做出准确的决定。AJAX总是让我感到害怕的是,被调用的脚本位置是公共的:http://www.mydomain.com/wp-content/themes/mytheme/inc/myscript.php 我只是对这种公共知识感到不舒服。在仍然能够自信地进行AJAX调用的同时,有没有一种合适的方法可以让窥探者远离该脚本?