ronilaukkarinen / wpstack-rolle
现代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:30:39 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/
,就像它是一个wp-content
的原因。这更好地描述了它,因为我们不希望它过于面向编程,而是更面向前端开发者(用于开发 WordPress 主题和功能) - Composer修改,用于安装更多包,例如基于芬兰语的本地化包等,这些并非Bedrock的原始部分。
- 自动化。我的意思是composer的
create-project
非常棒,但我们还需要更多。在create-project
之后,你仍需要做一些事情,我们的createproject
启动脚本就是为了自动化剩余的过程。 - 内置本地服务器环境设置,用于我们的原生macOS LEMP服务器
特性
- 支持HTTPS
- 专为纯WordPress开发设计
- 快速且易于使用的模板,用于开发和部署
- 可自定义的bash脚本,用于创建新的WordPress项目自动化
- 自动初始化GitHub仓库
- 自动生成MySQL数据库
- 为开发服务器自动设置项目相关的宿主设置
- 使用wp-cli清理默认的WordPress内容
- Capistrano 3部署模板已包含在bin/createproject.sh中
- Composer负责WordPress安装、插件依赖和更新
- 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目录中写入。
- 你使用原生macOS LEMP
- 你的仓库存储在GitHub上
- 你的项目主机名为project.test
- 你对gulp、npm和webpack没有问题
- WordPress依赖由composer控制
createproject.sh 做了什么
当你运行createproject
时,它会这样做
- 首先,它会使用dudestack设置运行
composer create-project
- 安装我们的默认WordPress插件并更新它们
- 自动创建MySQL仓库,名称与项目名称相同(默认假设你已经安装了macos-lemp)
- 安装capistrano部署工具
- 生成默认的capistrano配置(config/deploy.rb、config/deploy/staging.rb、config/deploy/production.rb),包含你的GitHub项目细节和路径
- 设置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通过composer.json
在每个项目中包含在dudestack中,默认情况下不会全局工作。您需要在您的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中的冗余。
问题
如果您有任何问题或疑问,请随时提出。