ucomm/wp-theme-project-boilerplate

该包的最新版本(1.2.1)没有提供许可信息。

WordPress主题搭建模板。

安装: 2

依赖: 0

建议: 0

安全: 0

类型:wordpress-theme

1.2.1 2021-07-29 18:02 UTC

This package is auto-updated.

Last update: 2024-09-26 18:22:21 UTC


README

请参阅我们通过Basecamp的正在进行中的文档,了解如何使用这些模板: Basecamp Docs

该仓库作为一个WordPress主题模板,与composer、docker和本地构建工具配合良好。

主题文件非常简单,旨在作为任何主题的起点。它不是基于任何父主题,如Cornerstone或Beaver Builder主题。在这个仓库中,您不会找到自定义选项、菜单添加等示例。这是一个非常基础的起点。

开始使用

因此,您想使用模板创建一个主题。为此,您需要在机器上安装一些东西

  • Composer。这是我们包管理的基础。
  • NodeJS。这是您安装的包中构建步骤所需的。最好用 nvm 来处理。
  • Docker。社区版即可。虚拟化本地服务器并可以运行本地构建链。

提前为需要在您的机器上安装所有这些工具道歉。长远目标是消除所有这些要求,除了Docker。欢迎提交拉取请求(

您不需要以任何方式克隆此项目即可开始主题开发。相反,以下操作应在创建新主题时执行

composer create-project ucomm/wp-theme-project-boilerplate <new-theme-name>
cd <new-theme-name>
composer install
nvm use
npm install

composer create-project 命令将通过 Packagist 引用 此仓库

接下来,您应该在模板目录上运行搜索替换,以包含您的主题名称而不是模板。

这将是一个合适的查找/替换操作,用于语言命名空间

查找:theme-boilerplate

替换:<your-theme-slug>

这将是一个合适的查找/替换操作,用于PHP命名空间

查找:ThemeBoilerplate

替换:<Your-Theme-Namespace>

**接下来,从 .gitignore 中删除 `.lock` 条目。这仅用于在此模板上开发,因为正常主题应锁定依赖项。**

最后,编辑 style.css 以包含适当的 WordPress 主题元数据

开始开发/查看预览

docker-compose up
nvm use
npm run dev
open https://

本地资产开发

该模板使用webpack处理JS/CSS资产开发。Webpack有时确实很复杂,但它:处理各种用例良好,正在积极开发中,具有良好的文档和示例。我们会永远使用它吗?可能不会。要开始,请打开另一个终端窗口。

nvm use
npm run dev

查看项目。

此项目将在 localhost 上可用。

CSS和JS资产在本地-dev容器和Web服务器之间共享。请参阅docker-compose文件了解它们是如何挂载/共享的。

调试和测试

调试

本仓库允许使用VSCode PHP Debug 扩展进行调试。仓库中包含一个用于参考的示例launch.json文件。创建一个新的launch.json文件,复制粘贴内容并修改以匹配主题名称。之后,您就可以运行xdebug了!

需要更多详细信息?xdebug功能是通过基于官方WordPress docker镜像的我们自定义的docker镜像提供的。

测试

应使用Codeceptionwp-browser测试框架创建PHP测试。请包含测试!它们虽然会占用一些开发时间,但可以节省大量时间(和尴尬)。

要查看所有可能的Codeception命令,请运行./vendor/bin/codecept list。要运行特定测试,请使用./vendor/bin/codecept run [suite-name] [test-name],例如./vendor/bin/codecept run acceptance MyAcceptanceTest

调试Docker

您可以直接从shell(只要容器正在运行)访问Docker容器,例如

docker-compose exec web bash

添加插件/依赖项

此项目使用composer作为PHP的依赖项管理工具。它还使用NPM/Yarn作为本地构建工具的依赖项管理工具,用于编译/压缩CSS/JS。

包可以在以下位置找到

要添加我们的插件、主题或其他PHP依赖项,请在composer.json文件中使用以下格式

{
  "repositories": [
      {
          "type": "composer",
          "url": "https://wpackagist.org"
      },
      {
        "type": "vcs",
        "url": "git@bitbucket.org/ucomm/{dependency-name}"
      }
  ]
}

然后运行

composer require (--dev) ucomm/{dependency-name}

是的,这使得仓库列表非常长,但更新速度非常快。

Git

我们使用git。请确保git init的默认分支名称设置为main。您可以通过查看gitconfig文件在~/.gitconfig中确认此信息。它应该看起来像这样

[init]
	defaultBranch = main

如果它不是这样,请将其添加到那里或使用以下命令

git config --global init.defaultBranch main

分支策略

git flow

我们试图使用Git Flow作为我们的分支策略。虽然不是必需的,但在团队工作中很有帮助。

如果您使用git flow,请将默认git flow分支名称也设置为main。您的gitconfig文件应该看起来像这样

[gitflow "branch"]
	master = main

或者运行

git config --global gitflow.branch.master main

标记

标记必须遵循semver系统。可以在git flow中使用git flow release startgit flow release finish命令添加标记。

Jenkins

构建

在Jenkins shell脚本中,要创建由webpack管理的资源,请使用以下格式

# select the correct node version
source ~/.nvm/nvm.sh
nvm use

# install dependencies quickly
npm ci

# build assets
npm run build

# remove node_modules folders
find . -name "node_modules" -type d -exec rm -rf '{}' +

自动化构建

为了确保自动推送到我们的开发服务器(s)采取以下步骤

  • 创建一个新的Jenkins项目(从头开始或通过复制 - 请参阅Castor项目作为示例)
  • 在bitbucket设置中,转到Settings -> Workflow -> Webhooks并在url http://ci.pr.uconn.edu:8080/bitbucket-hook/处添加到Jenkins的钩子。
  • 在bitbucket设置中,转到Settings -> General -> Access Keys并添加Jenkins ssh密钥。该密钥可以从另一个仓库复制/粘贴
  • 如果此项目将被部署到Aurora沙盒或健康开发服务器,请使用ftp客户端创建与项目同名的目录。否则,部署可能会失败。