ronilaukkarinen / dudestack
现代WordPress栈
Requires
- php: >=8.3
- composer/installers: ^1.10.0
- devgeniem/wp-sanitize-accented-uploads: *
- digitoimistodude/air-blocks-acf-example-data: dev-master
- digitoimistodude/air-helper: *
- johnpbloch/wordpress: 6.5.5
- koodimonni-language/en_gb: *
- koodimonni-language/fi: *
- koodimonni/composer-dropin-installer: dev-master
- oscarotero/env: ^2.1
- roots/wp-config: ^1.0
- vlucas/phpdotenv: ^5.3
- wp-cli/wp-cli-bundle: *
- wpackagist-plugin/disable-media-pages: *
- wpackagist-plugin/mailgun: *
- wpackagist-plugin/png-to-jpg: *
- wpackagist-plugin/simple-history: *
- wpackagist-plugin/so-clean-up-wp-seo: *
- wpackagist-plugin/tiny-compress-images: *
- wpackagist-plugin/two-factor: *
- wpackagist-plugin/wordpress-seo: *
- wpackagist-plugin/worker: *
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7
- phpcompatibility/php-compatibility: dev-develop as 9.3.5
- phpcompatibility/phpcompatibility-wp: *
- phpcsstandards/phpcsextra: ^1.2.0
- phpcsstandards/phpcsutils: ^1.0
- squizlabs/php_codesniffer: *
- wp-coding-standards/wpcs: ^3.0
- wpackagist-plugin/query-monitor: *
- dev-master
- 2.4.8
- 2.4.7
- 2.4.6
- 2.4.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.9
- 2.3.8
- 2.3.7
- 2.3.6
- 2.3.5
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.9
- 2.2.8
- 2.2.7
- 2.2.6
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.9
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.8.5
- 1.8.4
- 1.8.3
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.9
- 1.7.8
- 1.7.7
- 1.7.6
- 1.7.5
- dev-refactor-start-scripts
- dev-object-cache-pro
- dev-dev
- dev-https-support
This package is auto-updated.
Last update: 2024-09-25 15:23:49 UTC
README
Dudestack是一个现代WordPress工具包,可以帮助你开始使用最佳的开发工具和项目结构——就像Bedrock。
想法是只需一个命令就可以启动项目。DRY(不要重复自己)的东西完全自动化,可以轻松地在每个项目启动时节省数十个小时!
设置完成后,您只需运行以下命令即可开始新项目:
createproject
TL;DR:您可以通过遵循我们的Air起始主题说明在两分钟内立即测试dudestack。
请注意:dudestack的主要重点是它对我们公司和员工的工作方式。这意味着如果没有调整,它可能不适合您。如果您遇到问题,请通过问题提问。
文档与指南
- 查看Wiki
- 目前我们只有综合性的英文教程和针对Windows (WSL)的教程。
目录
背景
我们一直在发展我们的开发流程。老实说,我们看过数百篇文章、工具和脚本。我们长期使用常规WordPress结构、不同的wp-configs和Dandelion,但最终意识到在某些时候我们必须找到其中的规律。设置事情不应该是在新项目启动时最耗时的任务。
我们喜欢Bedrock,这是一个现代WordPress栈,可以帮助您开始使用最佳的开发工具和项目结构。Bedrock包含了我们之前一直在使用的工具,但更多。实际上,我们自豪地说,这个栈的大部分都是基于Bedrock的。
像bedrock一样,dudestack在开始新项目时可以节省您数小时。
它与什么不同,为什么我应该使用这个?
好吧,这主要是为芬兰本地WordPress公司Digitoimisto Dude Oy的网页设计/开发机构和备份目的以及展示我们如何工作而创建的工具箱。您应该只在使用方式上真的喜欢我们时才使用它。
尽管我们非常喜欢Bedrock,但我们注意到也有一些我们不喜欢的方面。
- 原来的内容默认放在
app/
目录下,后来放在web/
目录。我们更喜欢使用content/
,就像 WordPress 的wp-content
目录一样,原因在于它描述得更清楚。我们不想让它过于编程化,而是希望它更符合前端开发者的需求(用于开发 WordPress 主题和功能)。 - Composer 修改,用于安装更多包,例如芬兰语语言包等,这些并非 Bedrock 的原始部分。
- 自动化。我指的是 composer 的
create-project
功能很棒,但我们还需要更多。在create-project
之后,你仍然需要做些事情,我们的createproject
脚本就是为了自动化这些事情而设计的。 - 为我们的本地 macOS LEMP 服务器环境集成了设置 macOS。
特性
- 支持 HTTPS
- 专为纯 WordPress 开发设计
- 快速简单的模板,适用于开发和部署
- 用于创建新 WordPress 项目的可定制 bash 脚本
- 自动初始化 GitHub 仓库
- 自动生成 MySQL 数据库
- 自动设置开发服务器的项目相关主机
- 使用 wp-cli 清理默认的 WordPress 内容
- bin/createproject.sh 中包含的 Capistrano 3 部署模板 Capistrano 3
- 使用 Composer 来处理 WordPress 安装和插件依赖以及更新
- 用于开发、测试和生产的 Dotenv 环境 Dotenv
- 支持本地 LEMP 开发环境(macOS / Windows)
要求
- mkcert
- Composer v2
- 了解 bash 脚本编写、使用 Capistrano 进行部署、npm 包、bundle、composer 等的基本知识。
- 本地服务器环境 macos-lemp。可能可以配置 MAMP 或 Docker(我们没有第三方环境的相关经验或支持)。
- GitHub 账号
- 基于 Unix 的操作系统或 Windows WSL
- 可选:访问支持 sftp 和 git 的测试和生产服务器
- 项目位于 $HOME/Projects 目录下
- Git
- PHP >= 8.3
- Ruby >= 2.6
- Perl
安装
mkdir -p $HOME/Projects && cd $HOME/Projects && git clone git@github.com:digitoimistodude/dudestack.git
- 进入 dudestack 目录并运行设置脚本
cd $HOME/Projects/dudestack/bin && bash macos.sh
如果你使用 WSL/Windows
cd $HOME/Projects/dudestack/bin && bash wsl.sh
文档
使用createproject bash脚本来创建新项目
创建新项目有很多配置要做。我们希望通过创建一个名为 createproject.sh
的 bash 脚本来自动化大部分配置。
- 你使用的是类似 customer.example.com 的测试服务器,并将你的客户网站存储为 customer.example.com/customerone。你的测试服务器用户具有适当的权限,例如更改 /tmp 中的内容。
- 你使用的是单独的生产服务器,可能没有所有权限,例如在 /tmp 目录中写入。
- 你使用 native macOS LEMP
- 你的仓库存储在 GitHub 上
- 你的项目主机名为 project.test
- 你使用 gulp、npm 和 webpack 没问题
- WordPress 依赖由 composer 控制
createproject.sh的作用
当你运行 createproject
时,它看起来是这样的
- 首先,它会使用 dudestack 设置运行
composer create-project
- 安装我们的默认 WordPress 插件并更新它们
- 自动使用项目名称创建MySQL仓库(默认假设您已安装macos-lemp)
- 安装capistrano部署工具
- 使用您的GitHub项目详情和路径生成默认capistrano配置(config/deploy.rb,config/deploy/staging.rb,config/deploy/production.rb)
- 设置WordPress配置(wp-config凭据到.env)并自动加盐
- 在单独的子目录/wp下安装WordPress(因此,管理员位于example.test/wp/wp-admin)
- 为安全起见,将默认管理员用户设置为非“admin”(可以在bin/createproject.sh中配置额外用户)
- 移除默认的WordPress帖子、主题和插件以及其他不实用的内容
- 激活默认插件、时区和永久链接
- 刷新重写,添加对永久链接和Web字体的支持
- 设置文件权限
- 初始化GitHub仓库
- 创建HTTPS证书
- 为开发环境设置虚拟主机
- 更新/etc/hosts文件
- 重启开发服务器
您可能需要在每个项目中编辑的内容
- 运行
createproject
后,您应该在air-light/bin下运行newtheme.sh。这将生成WordPress主题并导入最新的devpackages,其中包含gulp、stylelint、webpack等,用于现代WordPress主题开发 - 要发布项目预发布/生产版本:生产服务器SSH凭据和路径在config/deploy/production.rb中,因为它们通常在每个项目中都不同。如果您服务器上的目录结构相同,您可以编辑bin/createproject.sh,以便在每个项目中不必重复操作。
- 您需要gulp或grunt,如果您不使用我们的入门主题air-light,请随意使用我们的devpackages - gulpfile和npm包设置等,这些是为此目的设计的
请注意
- Dudestack只是一个入门包,没有任何主题配置。我们将主题开发完全留给您。我们有自己的入门主题,可以与dudestack一起使用,请参阅air-light。
入门
- 所有假设您的项目都在
~/Projects
中。您应该确保该文件夹存在。您也可以选择使用其他文件夹,但这样需要进行大量的搜索和替换,使用这种方法将相当没有意义。 - 运行macos-lemp-stack(如果您使用其他开发环境,如MAMP Pro服务器,您需要相应地编辑bin/createproject.sh。我们不提供对所有环境的支持)
- 根据您的需要编辑
createproject.sh
和composer.json
。
要启动一个新项目,请运行createproject
并享受乐趣。
付费或高级插件
编辑您的composer.json
并在仓库部分添加以下行,用逗号分隔
Advanced Custom Fields Pro
根据pivvenit/acf-composer-bridge,添加到“repositories”部分
{ "type": "composer", "url": "https://pivvenit.github.io/acf-composer-bridge/composer/v3/wordpress-plugin/" },
然后到“requires”部分
"advanced-custom-fields/advanced-custom-fields-pro": "*",
Gravity Forms
根据gtap-dev/gravityforms-composer-installer,添加到“repositories”部分(请记住从此处更新到最新版本)
{ "type": "package", "package": { "name": "gravityforms/gravityforms", "version": "2.5.14.3", "type": "wordpress-plugin", "dist": { "type": "zip", "url": "https://www.gravityhelp.com/wp-content/plugins/gravitymanager/api.php?op=get_plugin&slug=gravityforms&key={%WP_PLUGIN_GF_KEY}" }, "require": { "composer/installers": "^1.4", "gotoandplay/gravityforms-composer-installer": "^2.3" } } },
然后到“requires”部分
"gravityforms/gravityforms": "*",
Object Cache Pro
要安装此包,您需要安装Redis和PHP Redis。
添加到“repositories”部分
{ "type": "composer", "url": "https://objectcache.pro/repo/" }
然后到“requires”部分
"rhubarbgroup/object-cache-pro": "^1.13.0"
Relevanssi
添加到“repositories”部分
{ "type": "package", "package": { "name": "relevanssi/relevanssi-premium", "version": "2.20.3", "type": "wordpress-plugin", "dist": { "type": "zip", "url": "https://www.relevanssi.com/update/get_version.php?api_key=xxx&version=2.20.3" } } },
然后到“requires”部分
"relevanssi/relevanssi-premium": "2.20.3",
Polylang Pro(以及其他没有仓库的插件)
添加到“repositories”部分
, { "type": "package", "package": { "name": "polylang/polylang-pro", "type": "wordpress-plugin", "version": "3.2.5", "dist": { "type": "zip", "url": "https://plugins.dude.fi/polylang-pro_3.2.5.zip" } } },
然后到“requires”部分
"polylang/polylang-pro": "3.2.5",
以类似的方式,您可以添加其他没有composer仓库的付费插件。我们几乎涵盖了我们在使用中遇到的几乎所有此类插件。
在获取新zip文件时,我在我的~/.bashrc
中使用此功能
function plugin() { scp -r $@ 'username@yoursite.com:~/path/to/plugins/'; }
因此,通过简单的ssh配对(无密码登录),我可以通过简单的命令上传插件:plugin gravityforms_1.8.20.5.zip
然后只需更改版本并运行composer update
。DRY,您看到了。
WP-CLI别名
WP-Cli包含在dudestack项目中,通过composer.json
进行配置,默认情况下不会全局工作。您需要在Mac或Linux的.bashrc
或.bash_profile
文件中添加此别名
alias wp='./vendor/wp-cli/wp-cli/bin/wp'
SEO插件
我们默认选择的SEO插件是The SEO Framework,它是一个简洁、简单的解决方案,适用于大多数项目。
如果客户熟悉Yoast并要求使用它,或者项目以博客为中心,可以切换到Yoast SEO。在这种情况下,将composer.json
中的wpackagist-plugin/autodescription
包替换为wpackagist-plugin/wordpress-seo
。同时,强烈建议安装wpackagist-plugin/so-clean-up-wp-seo
以清理UI中的冗余。
问题
如果您有任何问题或疑虑,请随时提出。