如果不是插件页面,则不要调用AJAX

时间:2021-02-18 作者:Vincenzo Piromalli

我创建了一个使用ajax的插件问题是插件请求加载在整个站点上,而不仅仅加载在插件页面上,我只需要在插件页面上调用该函数

插件主代码

// If this file is called directly, abort.
if ( ! defined( \'WPINC\' ) ) {
    die;
}

define("Importer",plugin_basename(__FILE__));
define("PLUGIN_DIR",__DIR__);

require_once PLUGIN_DIR."/vendor/autoload.php";


if(is_admin()){
    $moviewp = new \\App\\Bootstrap();
}
每次使用ajax在站点上执行操作时出现调试错误

call_user_func_array() expects parameter 1 to be a valid callback, class \'App\\Bootstrap\' does not have a method \'process_moviewp_like\' in C:\\xampp\\htdocs\\clean\\wp-includes\\class-wp-hook.php on line 287
如何排除站点ajax请求并将其与插件分离?

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

你可以查看WordPress的DOING_AJAX 常数:

if ( defined( \'DOING_AJAX\' ) && DOING_AJAX ) {
    return;
}
。。。或使用相关wp_doing_ajax() 功能:

if ( wp_doing_ajax() ) {
    return;
}
然而,我也会再次检查以确保App\\Bootstrap 具有名为的方法process_moviewp_like 同样,因为该错误看起来不像是仅限于AJAX的错误。

相关推荐

非常奇怪的错误:针对非管理员的AJAX

我被难住了。出于某种原因,一个非常好且简单的AJAX功能(将用户的电子邮件地址公开给前端)在一个安装中适用于非管理员,但在另一个安装中不适用。我已经用PHP和Ajax验证了代码的准确性。我正在正确地注册、本地化和排队脚本。它适用于管理员,但不适用于非管理员。我已经检查并禁用了所有插件,以确定某种插件冲突。我回到了2019年的主题。这一切都无济于事。我正在使用一些插件,这些插件可能会影响订阅服务器的功能,但我无法确定具体哪些功能可能会受到影响。有什么建议吗?编辑:以下是PHP:add_action( &qu