php循环获取api慢,为什么我的并发AJAX请求到PHP脚本/ WP REST API这么慢?

每次由WordPress提供AJAX请求时,都会加载所有WordPress核心,活动主题和所有活动插件.我们可以通过使用必须使用的插件来排除特定的插件来加载特定的请求来减少这个开销.

因此,优化对AJAX请求不必要的插件的负载.你必须忽略一些插件.您可以使用MU(must-use) codex来加载整个网站需要的插件.

MU插件与常规WordPress插件非常不同.它们安装在与常规插件分开的特殊/ wp-content / mu-plugins /文件夹中.只要它们位于该文件夹中,它们是活动的.要停用它们,您需要从该文件夹中删除它们.在加载常规插件之前,还会执行MU插件.

这就是为什么我们在这里使用一个MU插件.我们可以提前加载常规插件,并控制加载哪些插件.

在这种情况下,我们的MU插件由单一功能组成:

function wpmdbc_exclude_plugins( $plugins ) {

if ( !defined( 'DOING_AJAX' ) || !DOING_AJAX || !isset( $_POST['action'] ) || false === strpos( $_POST['action'], 'wpmdb' ) ) return $plugins;

$wpmdb_settings = get_option( 'wpmdb_settings' );

if ( !empty( $wpmdb_settings['blacklist_plugins'] ) ) {

$blacklist_plugins = array_flip( $wpmdb_settings['blacklist_plugins'] );

}

foreach( $plugins as $key => $plugin ) {

if ( false !== strpos( $plugin, 'wp-migrate-db-pro' ) || !isset( $blacklist_plugins[$plugin] ) ) continue;

unset( $plugins[$key] );

}

return $plugins;

}

add_filter( 'option_active_plugins', 'wpmdbc_exclude_plugins' );

你可以看到我们正在进入一个过滤器.所以当get_option(‘active_plugins’);被调用,该函数将被执行,并且可以修改哪些插件是活动的.

第一个条件语句确保我们正在处理WP Migrate DB Pro AJAX请求,如果不是我们保释,让WordPress像往常一样提供请求,加载所有活动插件.

函数的第二部分循环遍历活动插件列表,并检查几个条件.检查插件是否在我们的黑名单插件中排除.如果是,我们只需将其从活动插件列表中删除,防止在WordPress加载活动插件时加载它.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值