play.wenpai.net/blueprints/wpmind.json
feibisi d6064a9e9d fix: strip wp_blog/wp_install headers to resolve CORS preflight
api.wenpai.net rejects wp_blog custom header in CORS preflight,
causing Service Worker pre-fetch failures. Strip these WordPress-
specific headers before redirected requests.

v1.0.0 → v1.1.0
2026-02-20 21:38:08 +08:00

17 lines
1.7 KiB
JSON

{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"landingPage": "/wp-admin/admin.php?page=wpmind",
"preferredVersions": { "php": "8.3", "wp": "latest" },
"steps": [
{ "step": "setSiteLanguage", "language": "zh_CN" },
{ "step": "setSiteOptions", "options": { "blogname": "WPMind 体验站", "timezone_string": "Asia/Shanghai", "date_format": "Y-m-d", "time_format": "H:i" } },
{
"step": "writeFile",
"path": "/wordpress/wp-content/mu-plugins/wenpai-accelerate.php",
"data": "<?php\n/**\n * Plugin Name: WenPai Accelerate (Playground)\n * Description: API redirect + CORS fix for China WASM env\n * Version: 1.1.0\n */\nadd_filter('pre_http_request', function($preempt, $args, $url) {\n $host = parse_url($url, PHP_URL_HOST);\n if (!in_array($host, ['api.wordpress.org', 'downloads.wordpress.org'])) return $preempt;\n $new_url = str_replace(['api.wordpress.org', 'downloads.wordpress.org'], ['api.wenpai.net', 'downloads.wenpai.net'], $url);\n if (isset($args['headers']) && is_array($args['headers'])) {\n unset($args['headers']['wp_blog'], $args['headers']['wp_install']);\n }\n return wp_remote_request($new_url, $args);\n}, 10, 3);\nadd_filter('get_avatar_url', function($url) {\n return str_replace(['www.gravatar.com','0.gravatar.com','1.gravatar.com','2.gravatar.com','secure.gravatar.com','cn.gravatar.com'], 'cn.cravatar.com', $url);\n}, 1);\n"
},
{ "step": "installPlugin", "pluginData": { "resource": "url", "url": "https://play.wenpai.net/plugins/wpmind-0.11.3.zip" } },
{ "step": "activatePlugin", "pluginPath": "wpmind/wpmind.php" },
{ "step": "login", "username": "admin", "password": "password" }
]
}