我正在构建一个web推送WordPress插件,我想从表单输入字段传递项目编号到清单。json文件包含在index.php中的
<link rel="manifest" href="/manifest.json">
免责声明:我是这个插件的作者。您可以对已经存在的https://github.com/mozilla/wp-web-push做出贡献,而不是从头开始构建自己的。
如果你想构建自己的插件,你可以查看插件的源代码,看看我们是如何实现它的。
我们已经构建了一个类来处理它:https://github.com/marco-c/wp-web-app-manifest-generator.
不能向manifest.json
传递任何参数。您必须在提交表单时将其生成为静态文件。
下面是我们用于Pushpad插件的代码:
if (file_exists ( ABSPATH . 'manifest.json' )) {
$oldManifestJson = file_get_contents ( ABSPATH . 'manifest.json' );
} else {
$oldManifestJson = '{}';
}
$data = json_decode ( $oldManifestJson, true );
$data ['gcm_sender_id'] = $settings ['gcm_sender_id'];
$data ['gcm_user_visible_only'] = true;
$newManifestJson = json_encode ( $data );
if ( is_writable ( ABSPATH . 'manifest.json' ) || !file_exists ( ABSPATH . 'manifest.json' ) && is_writable ( ABSPATH ) ) {
file_put_contents ( ABSPATH . 'manifest.json', $newManifestJson );
} else {
// display an error
}