devgeniem / wp-readonly-options
在您的代码中预定义WordPress选项并强制get_option()的结果。
1.2.2
2019-11-14 08:21 UTC
Requires
- php: >=7.0
- composer/installers: >=v1.0.12
README
WP插件:只读选项
您是否希望像在 wp_config.php
中使用 define('PLUGIN_OPTION','some_value')
一样设置所有选项?
有时您需要使用只能通过管理页面和GUI提供选项的第三方插件。现在您无法像您希望的那样使用git对设置进行版本控制。
此插件可以帮助您在代码中设置所有设置,并无需强制您前往管理页面。
它的工作原理
它通过允许您强制 get_option()
的结果为预定义的值来实现。
这还在管理页面中添加了少量的javascript,以便可以设置只读属性到您的选项: <input readonly>
。这使得用户更容易理解这些选项不能被更改。
由于我们在定义常量时使用数组,因此这仅在 php7.0
版本或更高版本上有效。我们还喜欢使用标量类型提示。对不起,旧项目 :(
安装
建议使用composer进行安装
{ "require": { "devgeniem/wp-readonly-options": "^1.1" }, "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);
许可证
GPLv2