alexsancho / wp-readonly-options
在您的代码中预定义WordPress选项并强制get_option()的结果。
此包的官方仓库似乎已消失,因此该包已被冻结。
v1.0.2
2018-03-28 17:05 UTC
Requires
- php: >=7.0
- composer/installers: ^v1.0.0
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2021-10-14 13:10:06 UTC
README
您是否曾希望将所有选项设置为 define('PLUGIN_OPTION','some_value')
在 wp_config.php
中?
有时您需要使用只能提供这些选项的第三方插件,现在您无法像您希望的那样使用git进行设置版本控制。
此插件可以帮助您在代码中设置所有设置,并无需强制您转到管理页面。
工作原理
它通过允许您强制将get_option()
的结果设置为预定义值来工作。
这还会将一小部分JavaScript添加到管理页面中,以便它可以设置只读属性到您的选项:<input readonly>
。这使得用户更容易理解这些选项不能更改。
由于我们使用数组来定义常量,并且喜欢使用标量类型提示,因此这仅在php7.0
版本或更高版本中工作。对于旧项目,我们感到抱歉:(:
安装
首选安装方式是使用composer
{ "require": { "alexsancho/wp-readonly-options": "^v1.0.0" }, "extra": { "installer-paths": { "web/app/mu-plugins/{$name}/": ["type:wordpress-muplugin"] } } }
代码示例
我的选项页面看起来如此空旷和孤独
我会查找来自 /wp-admin/options.php
的键,我看到它们是 sm_bucket
和 sm_key_json
。
您也可以通过使用Google Chrome检查器来查看名称。键名与输入元素ID相同。
我可以使用这些键与 WP_READONLY_OPTIONS
,并将以下代码添加到我的 wp-config.php
php7.0
define( 'WP_READONLY_OPTIONS', array( 'sm_bucket' => 'my-bucket.example.com' 'sm_key_json' => '{ "type": "service_account", "project_id": "XXXXXXXXXXXXXXXXXXXXXXX", "private_key_id": "XXXXXXXXXXXXXXXXXXXX", "private_key": "-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -----END PRIVATE KEY----- }' ));
php5.X
define( 'WP_READONLY_OPTIONS', serialize( array( 'sm_bucket' => 'my-bucket.example.com' 'sm_key_json' => '{ "type": "service_account", "project_id": "XXXXXXXXXXXXXXXXXXXXXXX", "private_key_id": "XXXXXXXXXXXXXXXXXXXX", "private_key": "-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -----END PRIVATE KEY----- }' )));
之后,我可以看到只读模式下的值
配置
禁用只读属性设置器的JavaScript黑客技巧。它可能与某些内容不兼容。
define('WP_READONLY_OPTIONS_NO_JS',true);