moderntribe/square1-blog-copier

square one博客复制器

4.2.0 2022-10-25 16:44 UTC

README

博客复制器是一个WP多站工具,可以将模板博客复制到新博客。所有内容和设置都将从源博客复制到新博客。

使用方法

通过在核心插件中注册Blog_Copier_DefinerBlog_Copier_Subscriber来启用博客复制器。执行此操作的代码行应已存在,并条件性地加载在\Tribe\Project\Core::extend_definers()\Tribe\Project\Core::extend_subscribers()中。

启用后,可以在网络管理中访问博客复制器,在“站点”菜单下。

架构

博客复制器依赖于队列进行处理。启动复制会在队列中添加一个任务以运行复制的第一步。每当一个步骤完成时,它都会将下一个步骤添加到队列中。

复制配置存储在博客1的隐藏帖子内容中,格式为JSON。此JSON是Copy_Configuration对象的表示。每个任务将传递此对象的帖子ID,它可以引用该ID以获取原始表单提交数据(例如,新博客的域名?)或获取过程中之前步骤构建的状态(例如,新博客的ID?)。

需要运行的复制任务由配置在Blog_Copier_Definer中的Task_Chain对象定义。如果您需要向复制添加更多步骤,为该步骤创建一个新的Task,并设置一个新的定义器以覆盖\Tribe\Libs\Blog_Copier\Blog_Copier_Definer::TASK_CHAIN的值。

每当任务完成时,它必须触发一个动作来表示其完成,传递任务类的名称和最初传递给Task's handle()方法的参数。

do_action( Copy_Manager::TASK_COMPLETE_ACTION, static::class, $args );

如果动作失败且复制无法继续,触发失败动作,将WP_Error对象作为第三个参数传递给动作。

do_action( Copy_Manager::TASK_ERROR_ACTION, static::class, $args, $error );

自动化测试

某些测试需要在多站环境中运行才能成功。要启用这些测试,使用带有标志--env multisite的集成测试套件运行。