关于 PHP、wordpress 和 CRONE 的问题。我无法通过小部件调用的函数中的 CRON 过程更改全局变量。
$container
register_activation_hook(__FILE__, 'activate_my_plugin');
function activate_my_plugin() {
wp_clear_scheduled_hook('update_container');
wp_schedule_event( time(), 'hourly', 'update_container');
}
add_action('update_container', 'update_container');
function update_container() {
global $container;
// updating container
}
function use_container() {
global $container;
// !And here we have undefined $container
}
class acw_widget extends WP_Widget{
// ...
public function widget( $args, $instance )
{
use_container();
}
}
我正在尝试在 WP 站点上缓存对 DB 的请求。因此,我决定使用 CRON 来安排请求并将结果存储在某个全局容器中。假设小部件会出于其目的从容器中获取数据,但我遇到了看起来像“未定义容器”的问题。
因此,我激活插件,wp-cron.php 显示,该容器已更新(在“update_container”处),但在“use_container”中获取容器显示,$container 未定义且未更新。
请你解释一下,为什么会这样?如何跟踪初始化/更新全局容器的正确顺序?
代码是真实代码的简化版。也许这很尴尬,但我是 PHP 和 wordpress 的新手,所以这是我找到的解决方案。
慕莱坞森