错误404 WP Ajax请求

时间:2018-03-14 18:35:44

标签: ajax wordpress

我正在创建一个WP插件,它只会在特定的URL上加载其他插件。这些插件在WP管理插件中是停用的,只有在访问特定页面时才会加载。

在我的插件的类构造函数中:

$uri = $_SERVER['REQUEST_URI'];
$exp = explode('/', $uri);

$uri = $exp[2];
$options = get_option( $this->plugin_name );
$key = array_search( '/'.$uri.'/', array_column($options, 'url') );

$plugin_dir = $options[$key]['plugin']; // this prints plugin file directory ex. /MyPlugin/myplugin.php

include( WP_PLUGIN_DIR  . $plugin_dir);

上面的代码在特定的URL /页面上加载插件。意味着变量$plugin_dir抓住了正确的目录。但是,当有来自该插件的AJAX请求时会出现问题。防爆。当我尝试使用ajax请求删除项目时,它返回Error 404 Bad request

奇怪的是,上面几乎相同的代码,但这一次,我手动将插件目录分配给变量:ex。

$uri = $_SERVER['REQUEST_URI'];
$exp = explode('/', $uri);

$uri = $exp[2];
$options = get_option( $this->plugin_name );
$key = array_search( '/'.$uri.'/', array_column($options, 'url') );

$plugin_dir = '/MyPlugin/myplugin.php'; // manually place the plugin file dir
//same output as $plugin_dir = $options[$key]['plugin'];

include( WP_PLUGIN_DIR  . $plugin_dir);

但这一次,插件工作得很好。没有Ajax错误的请求错误。

可能的解释是什么?有没有关于这个问题的解决方案,以便我可以根据请求URI从wp选项中动态获取插件文件目录。

另外,另一个问题。而不是REQUEST URI,我想要获得POST / PAGE ID,但一切都返回NULL /空。仍然在构造函数内部,我尝试了不同的方法来获取页面ID:

global $post;
var_dump($post->ID); //returns NULL

global $wp_query;
var_dump($wp_query->post->ID); //returns NULL

echo get_the_ID(); //returns empty/NULL

有没有办法如何正确获取POST / PAGE细节,甚至只是ID?

谢谢。

0 个答案:

没有答案