WP_自动更新程序::更新(一串 $类型,对象 $项 ):空|WP_错误

更新项目(如果适用)。

参数

$类型一串必修的
正在检查的更新类型:“核心”,'主题','插件',“翻译”.
$项对象必修的
更新优惠。

返回

空|WP_错误

来源

公共功能更新($type,$item){$skin=新的Automatic_Upgrader_skin();交换机($type){案例“核心”://核心升级程序在升级的实际主要部分中不使用升级程序的皮肤,而是触发过滤器。add_filter('更新反馈',数组($skin,'反馈');$upgrader=新Core_upgrader($skin);$context=ABSPATH;断裂;案例“插件”:$upgrader=新插件升级程序($skin);$context=WP_PLUGIN_DIR;//我们不支持自定义插件目录或WPMU_Plugin_DIR更新。断裂;案例“主题”:$upgrader=新主题升级程序($skin);$context=get_theme_root($item->theme);断裂;案例“翻译”:$upgrader=新的Language_Pack_upgrader($skin);$context=WP_CONTENT_DIR;//WP_LANG_DIR;断裂;}//确定我们是否可以并且应该执行此更新。if(!$this->should_update($type,$item,$context)){返回false;}/***在自动更新之前立即激发。**@自4.4.0起**@param string$type正在检查的更新类型:“core”、“theme”、“plugin”或“translation”。*@param object$item更新提供。*@param string$context文件系统访问和状态所依据的文件系统上下文(路径)*应进行检查。*/do_action('pre_auto_update',$type,$item,$context);$upgrader_item=$item;交换机($type){案例“核心”:/*翻译器:%s:WordPress版本*/$skin->反馈(__(“更新到WordPress%s”),$item->版本);/*翻译人员:%s:WordPress版本*/$item_name=冲刺(__(“WordPress%s”),$item->版本);断裂;案例“主题”:$upgrader_item=$item->主题;$theme=wp_get_theme($upgrader_item);$item_name=$theme->获取(“名称”);//添加当前版本,以便可以在通知电子邮件中报告。$item->current_version=$theme->get(“版本”);if(空($item->current_version)){$item->current_version=false;}/*转换器:%s:主题名称*/$skin->反馈(__(“更新主题:%s”),$item_name);断裂;案例“插件”:$upgrader_item=$item->插件;$plugin_data=get_plugin_data($context.'/'.$upgrader_item);$item_name=$plugin_data['name'];//添加当前版本,以便可以在通知电子邮件中报告。$item->current_version=$plugin_data['version'];if(空($item->current_version)){$item->current_version=false;}/*转换器:%s:插件名称*/$skin->反馈(__(“更新插件:%s”),$item_name);断裂;案例“翻译”:$language_item_name=$upgrader->get_name_for_update($item);/*翻译程序:%s:项目名称(插件、主题或WordPress)*/$item_name=sprintf(__('%s的翻译'),$language_item_name]);/*翻译:1:项目名称(插件、主题或WordPress),2:语言*/$skin->反馈(sprintf(__(“更新%1$s(%2$s)的翻译…”)$language_item_name、$item->language);断裂;}$allow_relaxed_file_ownership=false;if('core'===$type&&isset($item->newfiles)&&$项->新文件){$allow_relaxed_file_ownership=true;}//轰,这个网站即将有一个全新的油漆飞溅!$upgrade_result=$upgrader->升级($upgrader_item,阵列(“clear_update_cache”=>假,//如果可能的话,请始终使用部分构建进行核心更新。“pre_check_md5”=>假,//仅适用于核心更新。“attempt_rollback”=>true,//在某些情况下允许放宽文件所有权。“allow_relaxed_file_ownership”=>$allow_rlaxed_file_ownerhip,));//如果文件系统不可用,则返回false。if(false===$upgrade_result){$upgrade_result=新WP_Error('fs_unavailable',__('无法访问文件系统'));}if(“核心”===$type){if(iswp_error($upgrade_result)&&('up_to_date'===$upgrade_result->get_error_code()||“锁定”===$upgrade_result->get_error_code())) {/**这些不是实际的错误,请将其视为跳过的更新*以避免触发核心后更新失败例程。*/返回false;}//Core没有输出这个,所以让我们附加它,这样我们就不会感到困惑。if(iswp_error($upgrade_result)){$upgrade_result->add('installation_failed',__('installation failed.'));$skin->错误($upgrade_result);}其他{$skin->反馈(__(“WordPress更新成功”);}}$this->update_results[$type][]=(对象)数组(“item”=>$item,“result”=>$upgrade_result,'name'=>$item_name,“消息”=>$skin->get_upgrade_messages(),);返回$upgrade_result;}

挂钩

do_操作('预自动更新',一串 $类型,对象 $项,一串 $上下文 )

在自动更新之前立即激发。

变更日志

版本描述
3.7.0介绍。

用户贡献的笔记

你必须登录在能够发表注释或反馈之前。