XM /starter_wordpress
XM Media 创建 WordPress 网站的启动器
Requires
- php: 8.1.*
- ext-json: *
- composer/installers: ^2.1
- oscarotero/env: ^2.1
- roave/security-advisories: dev-master
- roots/bedrock-autoloader: ^1.0
- roots/soil: ^4.0
- roots/wordpress: 6.6.2
- roots/wp-config: ^1.0
- roots/wp-password-bcrypt: ^1.0
- vlucas/phpdotenv: ^5.4
- wp-cli/wp-cli-bundle: ^2.3
- wpackagist-plugin/acf-content-analysis-for-yoast-seo: ^3.0
- wpackagist-plugin/akismet: ^5.0
- wpackagist-plugin/contact-form-7: ^5.8
- wpackagist-plugin/flamingo: ^2.0
- wpackagist-plugin/postmark-approved-wordpress-plugin: ^1.11
- wpackagist-plugin/svg-support: ^2.3
- wpackagist-plugin/wordfence: ^7.10.3
- wpackagist-plugin/wordpress-seo: ^23.4
- wpengine/advanced-custom-fields-pro: ^6.2.5
Requires (Dev)
- symfony/var-dumper: ^6.0
- wpackagist-plugin/query-monitor: ^3.7
This package is auto-updated.
Last update: 2024-09-13 19:28:44 UTC
README
- 必需:composer, node, yarn
- 可选:wp-cli
- 基于 https://github.com/roots/bedrock
初始设置
- 创建新项目
composer create-project xm/starter_wordpress project-name --stability=dev --no-install --remove-vcs
- 将
.env.example
复制到.env
。 - 在
.env
文件中更新环境变量
- 数据库:定义
DATABASE_URL
以使用 DSN (例如mysql://user:password@127.0.0.1:3306/db_name
) WP_ENV
- 设置为环境 (开发
,测试
,生产
)WP_HOME
- WordPress 主页的完整 URL (https://dev.example.com)WP_SITEURL
- 包含子目录的 WordPress 的完整 URL (https://example.com/wp)WPCOM_API_KEY
- WordPress.com API 密钥用于 Akismet 和 Jetpack(或其他 WordPress 付费插件)AUTH_KEY
,SECURE_AUTH_KEY
,LOGGED_IN_KEY
,NONCE_KEY
,AUTH_SALT
,SECURE_AUTH_SALT
,LOGGED_IN_SALT
,NONCE_SALT
来自:https://roots.io/salts.htmlACF_PRO_KEY
- 添加 ACF 密钥
- 服务器设置
- 如果使用 InterWorx 或 CentOS,上传
setup_dev.sh
并运行:sh ./setup_dev.sh
- 上传文件到服务器。不要上传(大多数在
.gitignore
中列出)/.git
和/.idea
- 以及以下内容(这些只在你安装了 JS 或 PHP 包的情况下存在)
/public/wp
/public/app/plugins/*
/vendor
/bin
/node_modules
- 安装 Composer(如果尚未安装)
- 添加
.env
(复制.env.example
并更新)。 - 安装 PHP 包/供应商:
php composer.phar install
- 运行
. ./node_setup.sh
(这将设置 node 并安装 JS 包 – 需要 yarn 已安装)。 - 运行
yarn dev
或yarn build
(用于生产)以编译 JS 和 CSS 文件。 - 将 public 链接到 html:
rm -rf html && ln -s public html
- 为 ACF 在供应商和插件目录之间创建符号链接:
ln -s /home/<user>/dev.example.com/vendor/advanced-custom-fields/advanced-custom-fields-pro public/app/plugins/acf
- 添加 cron:
*/15 * * * * curl https://dev.example.com/wp/wp-cron.php
(这是每 15 分钟一次)。自动 cron 已禁用。 - 调整 bin 目录的权限:
chmod u+x bin/*
- 安装 WP:
bin/wp core install --allow-root --url=https://<url> --title="<site-title>" --admin_user=<username> --admin_email=<email>
- 如果使用 InterWorx 或 CentOS,上传
- 更新
composer.json
:name
,license
(可能是private
并取消注释private
)和description
@todo-wordpress - ACF 现在需要 auth.json 文件才能与 composer 一起使用。从 https://www.advancedcustomfields.com/my-account/view-licenses/ 获取详细信息 - HS - 更新
package.json
:name
,version
,git.url
,license
,private
,script.dev-server
- 安装 PHP 包并更新本地:
composer install && composer update
- 本地运行
yarn && yarn upgrade
。 - 上传
composer.lock
和yarn.lock
,然后在服务器上再次运行php composer.phar install
和. ./node_setup.sh
。 - 查找并修改整个网站中靠近
@todo-wordpress
注释的位置。所有更改的文件都需要上传到服务器。 - 在
https://dev.example.com/wp/wp-admin/
访问 WordPress 管理员 - 激活所有已安装的插件:
bin/wp plugin activate --all
- 删除或更新
README.md
和LICENSE
- 添加Postmark API密钥
- 创建新的favicon:realfavicongenerator.net
- 考虑以下WordPress设置
- 设置主页:创建页面,然后在“设置”>“阅读”中选为主页
- 开发:设置>阅读 "阻止搜索引擎索引此站点"(适用于开发)
系统要求
使用WPackagist添加插件/主题
对于在WPackagist上找到并支持Composer安装的包。
- 运行
composer require wpackagist-plugin/plugin-name
或composer require wpackagist-theme/theme-name
- 将
composer.json
和composer.lock
文件上传到服务器(如果适用)。 - 在服务器上运行
php composer.phar install
(如果适用)。 - 在WordPress中激活和配置插件或主题。
注意:这种方式安装的插件,只有composer.json
和composer.lock
中的插件引用会被提交到git。实际的插件文件不会提交到git。
添加不在WPackagist上的插件/主题
下载插件的存档并将其放入/public/app/mu-plugins/<plugin-name>/
目录。在.gitignore
中添加一行,例如!public/app/mu-plugins/plugin/
,以便git检测/包含插件。将插件提交到git。它需要手动更新。
WordPress仅在mu-plugins目录直接查找PHP文件,并且(与普通插件不同)不在子目录中查找文件。您可能需要在mu-plugins目录中创建一个代理PHP加载文件(例如load.php)。只有当它无法自行找到插件文件时才这样做,否则您会得到重复错误。
<?php require WPMU_PLUGIN_DIR.'/my-plugin/my-plugin.php';
引用资源
要引用位于主题中的资源(图像、CSS文件等),请使用以下函数
<?php echo ThemeHelpers::assetPath('/path/within/theme/dir.jpg'); ?>
这将使用WordPress的内部路径和URL生成来处理主题文件夹更改或移动。路径开头的斜杠是可选的。
更改主题名称
更新WordPress & 插件/软件包
要更新WordPress核心和所有插件,请在本地上运行以下操作。将5.2.3
替换为当前版本。
composer update && composer require roots/wordpress:5.2.3
最新版本的WordPress可以在以下位置找到:https://github.com/roots/wordpress/releases
更改主题名称/路径
要将主题名称从默认的default
更改为,例如company
- 重命名主题文件夹。
- 在
config/application.php
中,更新Config::define('WP_DEFAULT_THEME', 'default');
行。 - 在
webpack.base.config.js
中,更新所有引用主题文件夹的路径,例如,public/app/themes/default/...
命令
- 生产JS/CSS构建:
yarn build
- 开发JS/CSS构建:
yarn dev
- 开发JS/CSS监视:
yarn watch
(文件将不会被版本化) - 开发JS/CSS HMR服务器:
yarn dev-server
(如果已配置) - JS测试(Jest):
yarn test:unit
(如果已配置) - E2E测试(Cypress):
yarn test:e2e
(如果已配置) - 代码检查
- JS(ESLint):
yarn lint:js
或yarn lint:js:fix
- CSS:
yarn lint:css
或yarn lint:css:fix
- JS(ESLint):
上线 / 发布后
- 确保“来自”/“到”地址在联系表单中正确
- 删除测试博客文章和示例页面,否则谷歌会索引这些内容。
- 确保在“设置”>“阅读”下未勾选“阻止搜索引擎索引此站点”
- 如果不使用“文章”,请在Yoast的“搜索外观”>“内容”中关闭文章索引
- 如果不使用“文章”,请在Yoast的“搜索外观”>“存档”中关闭作者索引 - 否则,谷歌会为每个用户/作者索引一个页面,不论是否使用。