作为一名WordPress开发者,时刻关注最新的技术和趋势可能会让人望而却步。以自动化为例——你是否了解在自动化工作流程方面可以做些什么?不太了解?好的,这篇文章可以帮助你。不过它与您平常看到的WordPress开发教程有些不同。它的重点在于自动化您在下一个WordPress项目中可以实现自动化的部分。
下面的WordPress开发教程将介绍典型开发周期中涉及的步骤。在此过程中,我们将提供一些解决方案和工具,帮助您自动化某些流程,以减少发布时间。

自动化的好处
在讨论自动化之前,让我们先讨论一下为什么应该自动化某些流程。
- ⏲️ 自动化节省时间,从而节省金钱。想象一下,如果只需点击一次就能将本地的WordPress开发版本与服务器同步,能节省多少时间。
- 🐛 其次,自动化冗余步骤有助于避免错误。在将更改同步到服务器的过程中,您可能会无意中上传错误的版本。这会导致返工。
- 🗺️ 此外,在开发周期中自动化各种步骤有助于可追溯性。这样做可以帮助您调试代码。例如,您可以准确地记录哪些更改在什么日期被上传到服务器。
- 🎯 最后,自动化帮助您专注于更重要的事情,比如创新!如果您不被冗余的重复性任务所困扰,就有更多时间处理需要您关注的重要任务。
这个WordPress开发教程通过首先找出冗余步骤,然后帮助您实现自动化,从而帮助您提高效率。
自动化开发环境
想象一下在以下场景中每次需要手动创建开发环境的情况:
- 启动项目
- 转移到新的开发机器
- 有新团队成员加入
创建软件和命令列表是自动化的第一步。但是,手动执行每个步骤需要大量时间,而且容易出错。因此,这样的列表仍然不足以设置您的环境。
Docker是一项服务,可帮助您根据需求在新机器上设置开发环境。Docker引入了容器的概念。容器是使用您的开发环境创建的虚拟封闭系统。使用Docker,您再也不会遇到服务器上更新了某些软件而导致一切无法工作的情况!

首先,您定义一个开发环境,指定新机器具体需要什么。然后,只需在新机器上运行一个命令即可启动这个过程——就这么简单!
这里有一份为WordPress设置Docker的指南。另外,这里还有一个WordPress的快速Docker配置文件。
Docker有一个缺点——如果您使用基于Windows的开发环境(如SQL Server、.NET或VisualBasic),则无法使用Docker实现它。
使用持续集成的版本控制
本 WordPress 开发教程关于自动化的下一步是专注于代码管理。当多个开发人员同时在同一代码上工作时,他们通常会使用某种形式的版本控制,如 Git 或 Mercurial。这里有一篇关于 版本控制 的 WordPress 开发教程。

使用代码管理软件时,开发人员可以复制中央存储库。他们可以在存储库中进行改进,并提交更改以与原始代码合并。流行的存储库一天可能有数百甚至数千次更改。当开发人员想要合并代码时,可能会出现各种冲突。在最极端的情况下,解决合并期间问题所需的时间可能比进行最初改进本身所需的时间还要长。
持续集成是为了通过频繁合并开发人员的工作来避免这种情况。然而,合并并不像听起来那么简单。它涉及开发人员在提交任何代码之前进行编译和测试。通常,构建服务器会在代码推送到中央存储库后对这些代码进行检查。这个过程减少了返工,这是浪费的来源之一,从而节省了成本和时间。测试和构建的频率各不相同,但如今,这个过程在每次提交后都会执行。
使用 Travis CI 进行持续集成

Travis CI 为开源存储库提供免费版本。您只需要为您的私有项目付费。我将在这个示例中演示一个 GitHub 项目。一旦您注册了 Travis(我建议通过 GitHub 注册),您需要执行以下步骤开始构建:
- 激活您的 GitHub 存储库
- 将
.travis.yml文件添加到存储库的根目录 - 推送到存储库以使用 Travis 构建
在您的 Travis 个人资料 页面上,激活您想要使用 Travis 测试的存储库。
以下是我激活示例存储库 web-scraping 的示例:

在 Travis 上激活存储库
激活存储库后,您需要将 .travis.yml 文件添加到您的存储库中。文件内容如下:
language: python
python:
- "2.6"
- "2.7"
# command to install dependencies
# install: "pip install -r requirements.txt"
# command to run tests
script: python tests.py
您需要指定语言(Python)及其要测试的版本。如果您有依赖项需要安装,您需要在 requirements.txt 文件中列出它们。由于此存储库中只运行虚拟测试,因此跳过了 requirements 行。如果不注释掉,Travis 会在运行测试之前在构建环境中安装这些 requirements。最后,指定了运行测试的命令。像 e-cidadania 这样的开源存储库有更详细的 .travis.yml 文件。
完成代码后,将其提交并推送到 GitHub。您可以在存储库页面上查看测试结果。也会通过电子邮件发送测试结果。您还可以通过个人资料页面触发另一次构建,以实时查看构建过程:

Travis上的构建成功
自动化主题开发
这个不同寻常的WordPress开发教程接下来要介绍的是主题开发。虽然使用代码管理系统足以处理你在WordPress目录中更改的任何代码,但主题开发过程中的中间步骤可以而且应该被自动化!
让我们暂停一下,列出在确定主题更改后主题开发过程中的一些典型任务:
- 将CSS预处理器代码编译为CSS
- 压缩CSS文件
- 向主题添加新图片
- 优化图片
- 生成子主题
- 监视更改并更新仓库
所有这些任务都是重复的,这表明了自动化的必要性。以下是我们可以实现自动化的方法:
使用Gulp自动化主题开发
让我们关注一个流行的工具——Gulp,用于自动化主题开发和部署。Gulp是一个工具包,帮助自动化上述所有流程。Gulp是一个基于JavaScript的工具,在Node.js服务器上运行。

要安装Gulp,你需要安装Node.js和NPM。然后你可以在终端中运行以下命令来安装Gulp。
npm install gulp -g
要使用Gulp处理主题,你需要导航到主题目录(通常位于/wp-content/themes/),并在终端中用命令npm init初始化NPM。
接下来,你应该将Gulp添加到package.json文件中。
{
"name": "my-theme",
"version": "1.0.0",
"description": "WordPress Development Tutorial Automation with Gulp",
"author": "My Name",
"devDependencies":
{
"gulp": "^3.9.1"
}
}
一旦Gulp在你的目录中被初始化,你需要使用函数task()定义Gulp任务——每个任务都是Gulp执行的一个自动化步骤。这里有一份详细的Gulp任务编写指南。
你想了解我们如何自动化主题开发吗——这里有一个教程,带你了解工程团队的实践之旅。
通过持续部署测试最终产品
这个WordPress开发教程的最后一步是自动化测试你的最终产品。简而言之,你需要评估你的网站在不同设备上是否正确渲染。
正如最近的DevOps趋势所表明的,最佳实践是超越持续集成。一旦你成功实施了持续集成,你可能会想,代码在中央仓库中不是一直处于可用状态吗?逻辑上的答案是肯定的,因此,将你的软件最新版本发布出来是有意义的,因为构建已经完成了!
这在所有情况下都有意义吗?不,特别是如果你的客户不想要持续更新的话。然而,这是一种保持代码随时可发布的理念。在你自己开发产品的情况下,持续部署是最有效的。在Google,代码提交后大约8分钟就可以上线!
如果你正在构建Web应用程序,编译可能并不意味着它在所有设备上都能正常工作。在这种情况下,像BrowserStack这样的工具就非常有用。它可以在不同制造商运行各种操作系统的真实设备上运行你的Web应用程序,以确保它们能为最终消费者正常工作。

使用 BrowserStack 进行持续部署
在 BrowserStack 中,你可以通过 Selenium 运行 Python 测试,Selenium 需要通过 PIP 安装。
pip install selenium
让我们使用运行 Android v7.1 的 Galaxy Note 8 运行一个简单的测试。我在下面代码中提供的链接可以在 BrowserStack 注册后获取(有一个免费试用版)。选择选项后,BrowserStack 会为你提供示例代码。

在 BrowserStack 上设置你的第一个测试
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
desired_cap = {
'browserName': 'android',
'device': 'Samsung Galaxy Note 8',
'realMobile': 'true',
'os_version': '7.1'
}
driver = webdriver.Remote(
command_executor='http://shaumikdaityari1:pnZpugbbuzZusdRaiKcx@hub.browserstack.com:80/wd/hub',
desired_capabilities=desired_cap)
driver.get("https://wpshout.com/")
elem = driver.find_element_by_name("q")
elem.send_keys("BrowserStack")
elem.submit()
print (driver.title)
driver.quit()
要运行它,只需执行该文件,或在终端中运行这些命令。
python browser_test.py
你可以在终端中确认测试是否成功。此外,你也可以回到你的 BrowserStack 账户查看测试实际运行的视频。

BrowserStack 测试的视频和日志
你可以在移动浏览器上自动化测试。BrowserStack 还使你能够在自己的服务器上运行测试,如 文档 中所述。
如果你正在制作移动应用程序,你会希望它通过特定工具在各种设备上进行测试。这可以通过 TestGrid 实现,它允许你在各种设备上运行你的应用程序。
关于这个不同寻常的(自动化)WordPress 开发教程的最终想法
到此,我们在 WordPress 开发中自动化任务的教程就结束了。我们涵盖了自动化的好处以及开发周期中可以自动化的各种任务。
你是否使用其他技术或工具来自动化你的 WordPress 开发工作流程?在下面的评论中分享你的技巧。



