notus.sh / wp-static-options
通过配置文件设置WordPress和插件选项,而不是wp_options表。
Requires
- hassankhan/config: ^2.2.0
- webmozart/glob: ^4.1.0
Requires (Dev)
- phpmd/phpmd: ~2.9
- phpunit/phpunit: ~9.5
- roots/wordpress: ~5.6
- squizlabs/php_codesniffer: ~3.5
- symfony/yaml: ~5.2
This package is auto-updated.
Last update: 2024-09-12 21:05:14 UTC
README
一个针对 开发者 的WordPress插件,用于通过配置文件强制执行战略性的WordPress选项。
为什么选择 wp-static-options?
WordPress 因其通过数十个选项进行自定义而闻名,大多数插件都试图提供相同级别的可配置性。所有选项都可以通过WordPress管理进行编辑,方式从更或更全面,这取决于您有多少插件,它们的复杂程度以及插件开发者遵循 WordPress管理指南 的程度。
这很好 并且 这很痛苦。很好,因为它允许对网络技术一无所知的人发布他们的网站(有时在经历一些头痛之后)。痛苦的是,随着项目的增长,您肯定会结束一些必须绝对不能更改的选项,除非您想使其公开部分崩溃(或者至少以意外的行为出现)。
需要例子吗?只需想想WordPress永久链接或WooCommerce支付网关选项,我想你就能明白这一点。
wp-static-options 做什么?
wp-static-options 允许您在配置文件中一次性设置选项。它通过挂钩到 WordPress的 get_option 始终返回正确的值(您想设置的值)。
安装
使用Composer
wp-static-options 在与 roots/bedrock 或类似的WordPress Composer设置(使用 composer/installers)配合使用时表现更好。
{ // […] "require": { "composer/installers": "^1.8" }, "extra": { "installer-paths": { "web/app/mu-plugins/{$name}/": ["type:wordpress-muplugin"], "web/app/plugins/{$name}/": ["type:wordpress-plugin"], "web/app/themes/{$name}/": ["type:wordpress-theme"] } } // […], }
一旦您的设置正确,请通过Composer安装此包
composer require notus.sh/wp-static-options
从源代码
从此存储库发布页面 获取最新tarball并将其提取到您的WordPress必用插件文件夹(默认为wp-content/mu-plugins)。
使用方法
定义您的配置目录
wp-static-options 预期一个 STATIC_OPTIONS_DIR 常量被定义,并包含指向配置目录的路径作为字符串。您可以在您的 wp-config.php(如果使用Root的Bedrock,则为 config/application.php)中定义它。
如果您没有定义自己的,STATIC_OPTIONS_DIR 的默认值将设置为 WP_CONTENT_DIR . '/config/'。
编写您的配置文件
wp-static-options 将递归地从 STATIC_OPTIONS_DIR 加载配置文件并将它们合并。接受任何 hassankhan/config 支持的文件格式。您可以自由地将配置拆分成尽可能多的文件(例如,每个插件一个),并以您喜欢的任何方式进行组织。
对于标量选项(其值是整数、字符串或数值索引数组),在配置文件中添加一个顶级键并设置值
timezone_string: 'Europe/Paris' date_format: 'j F Y' time_format: 'H:i'
一些插件将它们的选项存储为序列化数组。您可以设置您真正需要的值,并让WordPress管理其他值
return [ 'woocommerce_stripe_testmode' => [ 'testmode' => (WP_ENV === 'production' ? 'yes' : 'no') ], ];
注意事项
由于 WordPress处理 pre_option_* 过滤器返回的方式,false布尔值不是有效的配置值。
贡献
开发环境
您可以使用 dev/docker/Dockerfile 构建一个使用 PHP 7.4 和 Composer 的轻量级本地开发环境。
docker build \ --build-arg USER_ID=$(id -u) \ --build-arg GROUP_ID=$(id -g) \ --tag php:dev \ --file ./dev/docker/Dockerfile \ ./dev/docker/
然后运行容器:
docker run -it --rm --mount type=bind,source="$(pwd)"/,target=/home/runner/app --entrypoint /bin/bash php:dev
可用的 Composer 脚本
请使用可用的 Composer 脚本来验证您的更改。
composer run tests:运行单元和集成测试(PHPUnit)composer run tests-unit:仅运行单元测试composer run tests-integration:仅运行集成测试composer run lint:使用 PHP CodeSniffer 检查 PHP 代码composer run phpmd:使用 PHP Mess Detector 检查 PHP 代码