我正在创建一个WordPress插件,将帖子数据复制到远程数据库,我知道传输所有帖子需要一段时间。
我应该如何创建复制功能,使其不会超时?理想情况下,它将在后台运行,并在完成时显示一些通知。
我正在创建一个WordPress插件,将帖子数据复制到远程数据库,我知道传输所有帖子需要一段时间。
我应该如何创建复制功能,使其不会超时?理想情况下,它将在后台运行,并在完成时显示一些通知。
您可以使用WordPress的伪cron和wp_schedule_single_event
.
<?php
// add the action.
add_action(\'wpse71941_cron\', \'wpse71941_long_running\');
function wpse71941_long_running($args)
{
// might need to call `set_time_limit` here
set_time_limit(0);
// do long running stuff here
// return normal time limit
if($l = ini_get(\'max_execution_time\'))
set_time_limit($l);
}
// schedule the event for right now
wp_schedule_single_event(
time(),
\'wpse71941_cron\',
array(\'args\' => \'for\', \'callback\' => \'function\')
);
不确定你是否需要打乱时间限制。WP确实调用ignore_user_abort
在cron脚本的顶部。我在本地机器上安装了一个WP,试图用插件弄脏我的手。我希望从github克隆一个包含此插件代码的项目。然而,我没有插件内部的权限,作为一个没有su权限的普通用户,我无法做到这一点。(当然,我可以成为根并这样做,但我不认为这是应该的)。然后,默认情况下,WP安装中的文件夹将组设置为“tape”,这对我来说很奇怪。本地WP安装上内部文件夹的正确权限应该是什么?