0

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

如果我直接调用process.php,它可以完美运行,但不是来自 Ajax 调用。

文件夹结构

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

插件.js

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

插件.php

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

进程.php

include_once('../snippets.php')
//here not includes 'snippets.php'
4

1 回答 1

2

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

插件.php

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

进程.php

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

另外,您忘记了 process.php;的分号

于 2018-06-18T17:21:45.493 回答