Ajax调用包括在Wordpress中不起作用

时间:2018-06-18 16:56:30

标签: php ajax wordpress

我有一个用Cron Job调用的PHP文件,我需要与其余代码分开。所以,我有一个从我的仪表板调用AJAX请求的按钮。我的Wordpress插件中的Ajax函数包含文件(process.php),而这又包含另一个文件(snippets.php)。

如果我直接调用 process.php ,它可以正常工作,但不能通过Ajax调用。

文件夹结构

library(tidyverse)
pmap_dbl(df, ~ c(...) %>% 
                   sort %>% 
                   tail(3) %>% 
                   prod) %>% 
  bind_cols(df, maxProductof3 = .)
#   1 2 3  4 maxProductof3
#1 4 6 6  8           288
#2 5 5 7  9           315
#3 6 4 8 10           480
#4 4 6 6  8           288
#5 5 5 7  9           315
#6 6 4 8 10           480

plugin.js

plugin.php
plugin.js
snippets.php
processes/process.php

plugin.php

jQuery.ajax({
type: 'GET',
url: ajaxurl,
data : {
action : 'process',
}
})

process.php

function process(){
include_once( 'processes/process.php' );
}
add_action( 'wp_ajax_process', 'process' );

1 个答案:

答案 0 :(得分:1)

您应该使用自己文件中的相对包含,否则,它将从当前路径运行。要强制执行此操作,您可以使用__DIR__并以斜杠

开头

<强> plugin.php

function process(){
include_once(__DIR__.'/processes/process.php' );
}
add_action('wp_ajax_process', 'process' );

<强> process.php

include_once(__DIR__.'/../snippets.php');
//here not includes 'snippets.php'

另外,您忘记了 process.php

中的分号;