vinckla / wordplate
WordPlate 模板
Requires
- php: ^8.2
- composer/installers: ^2.3
- roots/bedrock-autoloader: ^1.0.4
- roots/wordpress: ^6.6.2
- roots/wp-password-bcrypt: ^1.2
- symfony/http-foundation: ^7.1
- vinkla/headache: ^3.3
- vlucas/phpdotenv: ^5.6
- wpackagist-plugin/clean-image-filenames: ^1.5
Requires (Dev)
- symfony/var-dumper: ^7.1
- dev-master
- 12.9.2
- 12.9.1
- 12.9.0
- 12.8.5
- 12.8.4
- 12.8.3
- 12.8.2
- 12.8.1
- 12.8.0
- 12.7.6
- 12.7.5
- 12.7.4
- 12.7.3
- 12.7.2
- 12.7.1
- 12.7.0
- 12.6.0
- 12.5.0
- 12.4.5
- 12.4.3
- 12.4.2
- 12.4.1
- 12.4.0
- 12.3.3
- 12.3.2
- 12.3.1
- 12.3.0
- 12.2.0
- 12.0.6
- 12.0.5
- 12.0.4
- 12.0.3
- 12.0.2
- 12.0.1
- 12.0.0
- 11.1.0
- 11.0.0
- 10.0.1
- 10.0.0
- 9.5.2
- 9.5.1
- 9.5.0
- 9.4.1
- 9.4.0
- 9.3.2
- 9.3.1
- 9.3.0
- 9.2.0
- 9.1.0
- 9.0.0
- 8.1.0
- 8.0.0
- 7.1.0
- 7.0.0
- 6.3.1
- 6.3.0
- 6.2.2
- 6.2.1
- 6.2.0
- 6.1.0
- 6.0.0
- 5.3.1
- 5.3.0
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.0
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.3.0
- 4.2.1
- 4.2.0
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.1.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 2.7.0
- 2.6.0
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.0
- dev-dependabot/npm_and_yarn/vite-tw-5.4.7
This package is auto-updated.
Last update: 2024-09-22 09:19:05 UTC
README
WordPlate
WordPlate 是一个 WordPress 模板,使用 Composer 构建,并设计有合理的默认值。
特性
-
WordPress + Composer = ❤️
可以使用 Composer 轻松安装和更新 WordPress。要更新 WordPress,只需运行
composer update
命令。 -
环境文件
类似于 Laravel,WordPlate 将环境变量,如数据库凭证,存储在
.env
文件中。 -
WordPress Packagist
WordPress Packagist 允许通过 Composer 管理WordPress 插件和主题。
-
必须使用的插件
不用担心客户禁用插件;默认启用了必须使用的插件。
-
Vite.js
使用 Vite,您可以快速设置并开始构建和压缩您的 CSS 和 JavaScript。
-
调试
集成了熟悉的调试辅助函数,例如
dump()
和dd()
。 -
清洁界面
增强 WordPress 控制台并改善客户的用户体验。
-
安全
我们已用现代且安全的 bcrypt 替换了 WordPress 过时且不安全的基于 MD5 的密码散列,使用了
roots/wp-password-bcrypt
包。
安装
在使用 WordPlate 之前,请确保您已在计算机上安装了 PHP 8.2 和 MySQL 8.0。您还需要在计算机上安装 Composer,这是 PHP 的包管理器。
要安装 WordPlate,请在终端中输入以下命令
composer create-project --prefer-dist vinkla/wordplate example-app
安装 WordPlate 后,您需要更新 .env
文件中的数据库凭证。此文件位于项目根目录中。打开文件并使用您的数据库凭证更新以下行
DB_NAME=database DB_USER=username DB_PASSWORD=password
要运行您的 WordPlate 应用程序,您可以使用 PHP 内置的 web 服务器来提供服务。打开终端,导航到项目中的 public
目录。然后,输入以下命令
php -S 127.0.0.1:8000 -t public/
最后,打开您的网络浏览器,访问以下 URL 以查看您的 WordPlate 应用程序
配置
公共目录
安装 WordPlate 后,您需要配置 web 服务器文档或 web 根为 public
目录。这是应用程序的主要入口点 index.php
所在的位置。
通过将 public
目录设置为 web 服务器的文档根,您确保所有 HTTP 请求都通过前端控制器路由,该控制器处理请求并返回适当的响应。
此配置有助于提高应用程序的安全性和性能,通过防止直接访问 public
目录之外的文件。
环境配置
WordPlate使得根据应用程序运行的环境轻松管理不同的配置值。例如,您可能需要在使用生产服务器时使用与本地不同的数据库。
为了实现这一点,WordPlate使用了vlucas/phpdotenv
PHP包。当您安装WordPlate时,一个.env.example
文件将被包含在您的应用程序根目录中。如果您通过Composer安装了WordPlate,该文件将自动重命名为.env
。否则,您应该手动重命名该文件。
请注意,您的.env
文件不应该提交到您的应用程序的源代码控制。这是因为每个使用您的应用程序的开发者或服务器可能需要不同的环境配置。此外,如果入侵者访问了您的存储库,将.env
文件提交到源代码控制将是一个安全风险,因为任何敏感凭证都可能被暴露。
要了解更多关于在WordPlate中管理环境变量的信息,您可以参考Laravel关于此主题的文档
Salt 密钥
在环境文件中添加盐密钥非常重要。这些密钥用于加密敏感数据,如用户会话,有助于确保您应用程序的安全性。
如果您没有设置盐密钥,您的用户会话和其他加密数据可能会受到攻击。为了更容易地生成安全的盐密钥,我们创建了一个盐密钥生成器,您可以使用它。如果您尚未这样做,请将.env.example
文件复制到一个名为.env
的新文件中。然后访问生成器并将随机生成的密钥复制到您的.env
文件中。
插件
WordPress Packagist
WordPlate包含与WordPress Packagist的集成,这是WordPress插件和主题目录的Composer存储库的镜像。通过此集成,您可以使用Composer安装和管理插件。
要安装插件,请使用wpackagist-plugin
作为供应商名称,并将插件slug作为包名称。例如,要安装clean-image-filenames
插件,您将使用以下命令
composer require wpackagist-plugin/clean-image-filenames
已安装的包将位于public/plugins
目录中。
以下是一个可能的composer.json
文件示例
"require": { "wpackagist-plugin/clean-image-filenames": "^1.5" }
有关更多信息示例,请访问WordPress Packagist网站。
必须使用的插件
必须使用插件(也称为mu-plugin)是WordPress插件的一种,它被安装在内部内容文件夹的特殊目录中。这些插件将在WordPress安装中的所有站点上自动启用。
要将插件安装到mu-plugins
目录中,请将插件名称添加到您的composer.json
文件的installer-paths
中
"installer-paths": { "public/mu-plugins/{$name}": [ "type:wordpress-muplugin", "wpackagist-plugin/clean-image-filenames", ] }
要安装插件,请使用wpackagist-plugin
作为供应商名称,并将插件slug作为包名称
composer require wpackagist-plugin/clean-image-filenames
插件将被安装到public/mu-plugins
目录中。
有关必须使用插件自动加载器的更多信息,请参阅Bedrock文档。
包含的插件
头痛
这是一个易于吞咽的止痛药插件,用于WordPress。它删除了您迫不及待想要删除的许多默认WordPress功能。它删除了如feed、版本号和emoji之类的元标签。
清洁图像文件名
插件在将文件上传到媒体库时会自动转换文件名中的语言重音字符。字符被转换成浏览器和服务器友好的非重音字符。
Räksmörgås.jpg
→raksmorgas.jpg
Æblegrød_FTW!.gif
→aeblegrod-ftw.gif
Château de Ferrières.png
→chateau-de-ferrieres.png
Vite.js
Vite 是一款构建工具,为现代网页项目提供更快、更精简的开发体验。它具有合理的默认设置,并通过其插件和 JavaScript API(支持完全类型支持)高度可扩展。
# Start the dev server... npm run dev # Build for production... npm run build
邮件
要为 WordPlate 应用程序发送电子邮件设置自定义 SMTP 凭据,您需要在 .env
文件中配置所需的环境变量。
MAIL_HOST=127.0.0.1 MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="Example"
如果您正在使用 Mailhog 或 Mailpit 等本地电子邮件服务,您需要通过将 MAIL_ENCRYPTION
环境变量设置为 null
来禁用加密。
常见问题解答
我可以在环境文件中添加 WordPress 常量吗?
通过在 WordPlate 应用程序创建后更新 public/wp-config.php
文件,这是可能的。
define('WP_DISABLE_FATAL_ERROR_HANDLER', env('WP_DISABLE_FATAL_ERROR_HANDLER', false));
+define('WP_ALLOW_MULTISITE', env('WP_ALLOW_MULTISITE', true));
然后,您可以将常量添加到 .env
文件中。
WP_DEFAULT_THEME=wordplate
+WP_ALLOW_MULTISITE=true
我可以禁用 WP-Cron 并设置手动 cron 作业吗?
WordPlate 允许您通过 DISABLE_WP_CRON
环境变量禁用内部 WordPress cron 系统
DISABLE_WP_CRON=true
如果您启用此设置并禁用 WordPress cron,建议您手动设置 cron 作业。您需要在 crontab 文件中添加以下内容
*/5 * * * * curl https://example.com/wp/wp-cron.php
我可以使用 Composer 安装语言包吗?
如果您想使用 Composer 安装语言包,我们建议您查看 WP Languages 项目。以下是安装 WordPress 瑞典语言包的 composer.json
文件示例。
{ "require": { "koodimonni-language/core-sv_se": "*", }, "repositories": [ { "type": "composer", "url": "https://wp-languages.github.io", "only": [ "koodimonni-language/*" ] } ], "config": { "allow-plugins": { "koodimonni/composer-dropin-installer": true }, }, "extra": { "dropin-paths": { "public/languages/": [ "vendor:koodimonni-language" ] } } }
我可以重命名公共目录吗?
使用新的公共目录路径更新您的 .gitignore
、composer.json
、.vite.config.js
和 wp-cli.yml
文件。然后,在项目根目录中运行 composer update
。
我可以重命名 WordPress 目录吗?
默认情况下,WordPlate 将 WordPress 放在 public/wordpress
。如果您想更改此设置,您需要完成一些步骤。假设您想将默认 WordPress 位置更改为 public/wp
-
在您的
composer.json
文件中更新wordpress-install-dir
路径。 -
在
wordplate/public/.gitignore
中将wordpress
更新为wp
。 -
更新
public/index.php
文件的最后一行require __DIR__.'/wp/wp-blog-header.php';
-
在
.env
文件中将WP_DIR
环境变量更新为wp
。 -
如果您使用 WP-CLI,更新
wp-cli.yml
文件中的路径为public/wp
。 -
如果存在,则删除
public/wordpress
目录,然后运行composer update
。
我可以重命名主题目录吗?
对于大多数应用程序,您可能可以保留主题目录不变。如果您想将 wordplate
主题重命名为其他名称,您还需要在 .env
文件中更新 WP_DEFAULT_THEME
环境变量。
我可以与 Laravel Herd 或 Valet 一起使用 WordPlate 吗?
如果您正在使用 Laravel Herd 或 Valet 与 WordPlate 一起使用,您可以使用我们的 自定义驱动程序
<?php namespace Valet\Drivers\Custom; use Valet\Drivers\BasicValetDriver; class WordPlateValetDriver extends BasicValetDriver { public function serves(string $sitePath, string $siteName, string $uri): bool { return is_dir($sitePath . '/public/wordpress'); } public function isStaticFile(string $sitePath, string $siteName, string $url) { $staticFilePath = $sitePath . '/public' . $url; if ($this->isActualFile($staticFilePath)) { return $staticFilePath; } return false; } public function frontControllerPath(string $sitePath, string $siteName, string $uri): ?string { return parent::frontControllerPath( $sitePath . '/public', $siteName, $this->forceTrailingSlash($uri) ); } private function forceTrailingSlash(string $uri) { if (substr($uri, -1 * strlen('/wordpress/wp-admin')) === '/wordpress/wp-admin') { header('Location: ' . $uri . '/'); exit; } return $uri; } }
我可以与 Tinkerwell 一起使用 WordPlate 吗?
如果您正在使用 Tinkerwell 与 WordPlate 一起使用,您可以使用我们的 自定义驱动程序
<?php final class WordPlateTinkerwellDriver extends WordpressTinkerwellDriver { public function canBootstrap($projectPath) { return file_exists($projectPath . '/public/wordpress/wp-load.php'); } public function bootstrap($projectPath) { require $projectPath . '/public/wordpress/wp-load.php'; } public function appVersion() { return 'WordPlate ' . get_bloginfo('version'); } }
升级指南
从 11 升级到 12
-
已存档
wordplate/framework
包。更新composer.json
文件"require": { - "wordplate/framework": "^11.1", + "composer/installers": "^2.1", + "johnpbloch/wordpress-core-installer": "^2.0", + "johnpbloch/wordpress-core": "^6.0", + "roots/bedrock-autoloader": "^1.0", + "roots/wp-password-bcrypt": "^1.1", + "symfony/http-foundation": "^6.0", + "symfony/var-dumper": "^6.0", + "vlucas/phpdotenv": "^5.4" }
-
使用此存储库中的 该文件 替换您的
public/wp-config.php
文件。请记住保存您在wp-config.php
文件中定义的任何自定义常量。 -
将此存储库中的
src/helpers.php
文件添加到项目中,并在composer.json
文件中自动加载它+"autoload": { + "files": [ + "src/helpers.php" + ] +}
-
在项目根目录中运行
composer update
。
从 10 升级到 11
-
WordPlate 现在需要 PHP 8.0 或更高版本。
-
在
composer.json
文件中将版本号提升到^11.0
。 -
在项目根目录中运行
composer update
。
从 9 升级到 10
-
WordPlate 现在需要 PHP 7.4 或更高版本。
-
将
composer.json
文件中的版本号提升到^10.0
。 -
在环境文件中将
WP_ENV
重命名为WP_ENVIRONMENT_TYPE
。 -
在环境文件中将
WP_THEME
重命名为WP_DEFAULT_THEME
。 -
如果存在,将环境文件中的
WP_URL
重命名为WP_HOME
。 -
如果您使用
WP_CACHE
环境变量,需要在public/wp-config.php
文件中定义它。$application->run(); +define('WP_CACHE', env('WP_CACHE', false)); $table_prefix = env('DB_TABLE_PREFIX', 'wp_');
-
可选:在以下文件中将
WP_PREFIX
重命名为DB_TABLE_PREFIX
.env
.env.example
public/wp-config.php
-
在项目根目录中运行
composer update
。
从 8 升级到 9
-
将
composer.json
文件中的版本号提升到^9.0
。 -
将
public/mu-plugins/mu-plugins.php
文件复制到您的项目中。 -
更新
public/.gitignore
文件以允许新的mu-plugins.php
文件。-mu-plugins/ +mu-plugins/* +!mu-plugins/mu-plugins.php
-
在项目根目录中运行
composer update
。
从 7 升级到 8
-
WordPlate 现在需要 PHP 7.2 或更高版本。
-
将
composer.json
文件中的版本号提升到^8.0
。[!注意]
WordPlate 8.0 需要 WordPress 5.3 或更高版本。 -
Laravel 的辅助函数在 WordPlate 中现在是可选的。如果您想使用这些函数,请使用 Composer 在项目的根目录中安装
laravel/helpers
包。composer require laravel/helpers
-
Laravel 的集合在 WordPlate 中现在是可选的。如果您想使用集合,请使用 Composer 在项目的根目录中安装
tightenco/collect
包。composer require tightenco/collect
-
mix
辅助函数在 WordPlate 中现在是可选的。如果您想使用该函数,请使用 Composer 在项目的根目录中安装ibox/mix-function
包。composer require ibox/mix-function
-
将任何对
asset
、stylesheet_url
和template_url
函数的使用替换为 WordPress 的get_theme_file_uri
函数。 -
将任何对
stylesheet_path
和template_path
函数的使用替换为 WordPress 的get_theme_file_path
函数。 -
已移除
base_path
和template_slug
函数。 -
在项目根目录中运行
composer update
。
从 6 升级到 7
-
将
composer.json
文件中的版本号提升到^7.0
。[!注意]
WordPlate 7.0 需要 WordPress 5.0 或更高版本。 -
在
wp-config.php
文件中将realpath(__DIR__)
更新为realpath(__DIR__.'/../')
。 -
如果您的公共目录不是命名为
public
,请在wp-config.php
文件中添加以下行。$application->setPublicPath(realpath(__DIR__));
-
在项目根目录中运行
composer update
。
从 5 升级到 6
-
将
composer.json
文件中的版本号提升到^6.0
。 -
在
wp-config.php
文件中将realpath(__DIR__.'/../')
更新为realpath(__DIR__)
。 -
在项目根目录中运行
composer update
。
从 4 升级到 5
-
将
composer.json
文件中的版本号提升到^5.0
。 -
将
wp-config.php
文件的内容复制并粘贴到您的应用程序中。[!注意]
确保不要覆盖任何自定义常量。 -
在项目根目录中运行
composer update
。
致谢
WordPlate 的实现离不开这些惊人的开源项目。
composer/installers
motdotla/dotenv
outlandish/wpackagist
roots/bedrock-autoloader
roots/wordpress
roots/wp-password-bcrypt
symfony/http-foundation
symfony/var-dumper
upperdog/clean-image-filenames
vinkla/headache
vitejs/vite
vlucas/phpdotenv
许可证
WordPlate 包是开源软件,许可协议为 MIT 许可协议。