notus.sh/wp-static-options

通过配置文件设置WordPress和插件选项,而不是wp_options表。

资助包维护!
Open Collective

安装: 22

依赖者: 0

建议者: 0

安全: 0

星星: 0

监视者: 2

分支: 0

开放问题: 0

类型:wordpress-muplugin

1.1.2 2021-01-25 12:40 UTC

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 代码