AJAX-调用未定义的函数GET_OPTION()

时间:2014-06-05 作者:user3703474

因此,我最近一直在Wordpress中使用Ajax,并设法从数据库中获取一些股票数据到我的网站中。然而,我现在正试图使用Ajax将Wordpress帖子加载到我的左侧边栏中,这需要使用Wordpress函数,似乎我做得不太好。

我已经阅读了Wordpress Codex和其他几个关于这个主题的线程/教程,但是我对自己做错了什么感到非常困惑。

Javascript File

function load_blog_posts_function() 
{
     jQuery.ajax({
     url: "wp-content/themes/Divi/js/stockchart/blog-list-query.php",
     data: ({action : \'load_blog_posts_sidebar\'}),
     success: function(data) {
     alert(data);
     }
     });
}
PHP File

<?php 
function load_blog_posts_sidebar()
{
$stockSymbol = $_GET[\'symbol\'];
/* Set up the query arguments. */
$options = get_option("widget_rpwe_widget");
$args = array(\'fb\' => $cat);
$default_args = apply_filters( \'rpwe_default_query_arguments\', $args );
$rpwewidget = get_posts($default_args);
//echo $options;
echo("hello world");
}
?>
我还了解到我的函数中需要一些代码。php,所以我有这个:

$dirName = dirname(__FILE__);
$baseName = basename(realpath($dirName));
require_once ("$dirName/js/stockchart/blog-list-query.php");

add_action("wp_ajax_nopriv_load_blog_posts_sidebar", "load_blog_posts_sidebar");
add_action("wp_ajax_load_blog_posts_sidebar", "load_blog_posts_sidebar");
我目前在尝试运行此操作时出现两个错误,更重要的是

调用未定义的函数get\\u option()

这告诉我,我的php脚本无法识别Wordpress函数,我还得到以下结果:

警告:session\\u start():无法发送会话缓存限制器-标题已发送(输出开始于…/www.3weekwebsites.com/wp-content/themes/Divi/js/stockchart/blog-list-query.php:12)/www.3weekwebsites。com/wp-content/themes/Divi/header。php在线1

任何人都可以在这里分享一些见解吗?我将非常感激。:)

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

您正在向一个PHP文件触发一个请求,该文件不会加载WordPress库,因此出现了未定义函数错误。

您可以手动在WordPress中加载require \'../../../wp-load.php\'.

Or, 更好的是,使用真棒AJAX API. 只需将您的请求发送到wp-admin/admin-ajax.php 然后在插件或主题中注册与action 参数(在您的情况下,load_blog_posts_sidebar):

function wpse_147692_load_blog_posts_sidebar() {
    // Do something!
    exit;
}

add_action( \'wp_ajax_nopriv_load_blog_posts_sidebar\', \'wpse_147692_load_blog_posts_sidebar\' );
add_action( \'wp_ajax_load_blog_posts_sidebar\',        \'wpse_147692_load_blog_posts_sidebar\' );

结束

相关推荐

在WPML中使用Pod时收到PHP通知

我已经安装了Pods和WPML,我已经为WPML安装了SitePress多语言CMS扩展,并且我有许多使用Pods添加的自定义帖子类型。最近我在查看网站时添加了什么?lang=ar到URL的末尾检查所有内容的外观(我还没有翻译任何内容),我收到了一个PHP通知,它在标题上方重复了46次,它说:Notice: Invalid object kind: _pods_field in /my/website/path/wp-content/plugins/sitepress-multilingual-cms/i