{"id":170,"date":"2025-12-06T14:26:48","date_gmt":"2025-12-06T14:26:48","guid":{"rendered":"https:\/\/www.nme.mobi\/blog\/?p=170"},"modified":"2025-12-06T17:02:49","modified_gmt":"2025-12-06T17:02:49","slug":"unleashing-the-power-of-nativephp-child-commands","status":"publish","type":"post","link":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/","title":{"rendered":"Unleashing the Power of NativePHP Child Commands"},"content":{"rendered":"<p data-start=\"288\" data-end=\"540\">NativePHP has come a long way\u2014its latest version is 2.1 (as of this writing). But if you\u2019ve ever tried to tweak your app, you know the frustration: <strong data-start=\"436\" data-end=\"486\">every update can overwrite your custom changes<\/strong>, leaving you to repeat tedious steps over and over.<\/p>\n<p data-start=\"542\" data-end=\"726\">What if there was a better way? A way to <strong data-start=\"583\" data-end=\"683\">automate repetitive tasks, safeguard your tweaks, and wield ultimate control over your app build<\/strong>?<\/p>\n<p data-start=\"542\" data-end=\"726\">Enter: the <strong data-start=\"696\" data-end=\"723\">NativePHP child command<\/strong>.<\/p>\n<p><strong>Step 1: Forge Your Command<\/strong><\/p>\n<pre> php artisan make:command NativeRunChild<\/pre>\n<p><strong>Step 2: Empower Your Command<\/strong><\/p>\n<p data-start=\"1101\" data-end=\"1256\">Now comes the fun part: you teach your command <strong data-start=\"1148\" data-end=\"1162\">what to do<\/strong>. Anything repetitive\u2014copying files, patching updates, preparing resources\u2014can be automated.<\/p>\n<p data-start=\"1258\" data-end=\"1372\">Here\u2019s a simple example that copies files before running your app (adapt it for whatever heroic tasks you need):<\/p>\n<div>\n<div>\n<pre>&lt;?php\r\n\r\nnamespace App\\Console\\Commands;\r\n\r\nuse Illuminate\\Console\\Command;\r\nuse Illuminate\\Support\\Facades\\File;\r\n\r\n\/**\r\n * Class NativeRunChild\r\n * @package App\\Console\\Commands\r\n *\/\r\nclass NativeRunChild extends Command\r\n{\r\n    \/**\r\n     * The name and signature of the console command.\r\n     *\r\n     * @var string\r\n     *\/\r\n    protected $signature = 'native:run-child';\r\n\r\n    \/**\r\n     * The console command description.\r\n     *\r\n     * @var string\r\n     *\/\r\n    protected $description = 'Unleashing the Power of NativePHP Child Commands';\r\n\r\n    \/**\r\n     * Execute the console command.\r\n     *\/\r\n    public function handle()\r\n    {\r\n        \/\/ Run notification sound tasks\r\n        $result = $this-&gt;customNotificationSound();\r\n\r\n        \/\/ Only proceed if previous tasks succeeded\r\n        if ($result === self::SUCCESS) {\r\n            $this-&gt;components-&gt;task('Running NativePHP main runtime', function () {\r\n                $exitCode = $this-&gt;call('native:run');\r\n                return $exitCode === 0;\r\n            });\r\n        }\r\n\r\n        return $result;\r\n    }\r\n\r\n    \/**\r\n     * @return int\r\n     *\/\r\n    public function customNotificationSound(): int\r\n    {\r\n        \/\/ Android notification sound\r\n        $androidSource = public_path('sounds\/notification.mp3');\r\n        $androidDestinationDir = base_path('nativephp\/android\/app\/src\/main\/res\/raw');\r\n        $androidDestinationFile = $androidDestinationDir . '\/notification.mp3';\r\n\r\n        \/\/ Ensure Android directory exists\r\n        $this-&gt;components-&gt;task('Ensuring Android directories exist', function () use ($androidDestinationDir) {\r\n            if (!File::exists($androidDestinationDir)) {\r\n                File::makeDirectory($androidDestinationDir, 0755, true);\r\n            }\r\n            return true;\r\n        });\r\n\r\n        \/\/ Copy Android sound\r\n        $this-&gt;components-&gt;task('Copying Android notification sound', function () use ($androidSource, $androidDestinationFile) {\r\n            if (!File::exists($androidSource)) {\r\n                $this-&gt;error(\"Android source sound missing: $androidSource\");\r\n                return false;\r\n            }\r\n\r\n            if (!File::exists($androidDestinationFile)) {\r\n                File::copy($androidSource, $androidDestinationFile);\r\n            }\r\n\r\n            return true;\r\n        });\r\n\r\n        \/\/ Ios notification sound\r\n        $iosSource = public_path('sounds\/notification.caf');\r\n        $iosDestinationDir = base_path('nativephp\/ios\/NativePHP');\r\n        $iosDestinationFile = $iosDestinationDir . '\/notification.caf';\r\n\r\n        \/\/ Ensure iOS directory exists\r\n        $this-&gt;components-&gt;task('Ensuring iOS directories exist', function () use ($iosDestinationDir) {\r\n            if (!File::exists($iosDestinationDir)) {\r\n                File::makeDirectory($iosDestinationDir, 0755, true);\r\n            }\r\n            return true;\r\n        });\r\n\r\n        \/\/ Copy iOS sound\r\n        $this-&gt;components-&gt;task('Copying iOS notification sound', function () use ($iosSource, $iosDestinationFile) {\r\n            if (!File::exists($iosSource)) {\r\n                $this-&gt;error(\"iOS source sound missing: $iosSource\");\r\n                return false;\r\n            }\r\n\r\n            if (!File::exists($iosDestinationFile)) {\r\n                File::copy($iosSource, $iosDestinationFile);\r\n            }\r\n\r\n            return true;\r\n        });\r\n\r\n        return self::SUCCESS;\r\n    }\r\n}<\/pre>\n<\/div>\n<\/div>\n<p><strong>A Word of Caution<\/strong><\/p>\n<p>With great power comes great responsibility. <strong data-start=\"2479\" data-end=\"2574\">Any change you make in the child command or the app folders can potentially break your app.<\/strong><\/p>\n<p>To restore the original functionality and revert any changes made by this command, run:<\/p>\n<pre>php artisan native:install --force<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>NativePHP has come a long way\u2014its latest version is 2.1 (as of this writing). But if you\u2019ve ever tried to tweak your app, you know the frustration: every update can overwrite your custom changes, leaving you to repeat tedious steps over and over. What if there was a better way? A way to automate repetitive [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":172,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nativephp"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Unleashing the Power of NativePHP Child Commands - New Media Entertainment<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unleashing the Power of NativePHP Child Commands - New Media Entertainment\" \/>\n<meta property=\"og:description\" content=\"NativePHP has come a long way\u2014its latest version is 2.1 (as of this writing). But if you\u2019ve ever tried to tweak your app, you know the frustration: every update can overwrite your custom changes, leaving you to repeat tedious steps over and over. What if there was a better way? A way to automate repetitive [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/\" \/>\n<meta property=\"og:site_name\" content=\"New Media Entertainment\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-06T14:26:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-06T17:02:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.nme.mobi\/blog\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-06-at-15.15.19.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1764\" \/>\n\t<meta property=\"og:image:height\" content=\"634\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/#\\\/schema\\\/person\\\/af3e0d852abc6918b3b8fd617643536d\"},\"headline\":\"Unleashing the Power of NativePHP Child Commands\",\"datePublished\":\"2025-12-06T14:26:48+00:00\",\"dateModified\":\"2025-12-06T17:02:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/\"},\"wordCount\":173,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Screenshot-2025-12-06-at-15.15.19.png\",\"articleSection\":[\"nativePHP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/\",\"url\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/\",\"name\":\"Unleashing the Power of NativePHP Child Commands - New Media Entertainment\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Screenshot-2025-12-06-at-15.15.19.png\",\"datePublished\":\"2025-12-06T14:26:48+00:00\",\"dateModified\":\"2025-12-06T17:02:49+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/#\\\/schema\\\/person\\\/af3e0d852abc6918b3b8fd617643536d\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Screenshot-2025-12-06-at-15.15.19.png\",\"contentUrl\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Screenshot-2025-12-06-at-15.15.19.png\",\"width\":1764,\"height\":634},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/unleashing-the-power-of-nativephp-child-commands\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unleashing the Power of NativePHP Child Commands\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/\",\"name\":\"New Media Entertainment\",\"description\":\"Solutions for THAT problem\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.nme.mobi\\\/blog\\\/#\\\/schema\\\/person\\\/af3e0d852abc6918b3b8fd617643536d\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/afd881acea40fb7d25b7d8485bfd177ba674c7193d777e38f1cf61ffc50b5d83?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/afd881acea40fb7d25b7d8485bfd177ba674c7193d777e38f1cf61ffc50b5d83?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/afd881acea40fb7d25b7d8485bfd177ba674c7193d777e38f1cf61ffc50b5d83?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\\\/\\\/www.nme.one\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Unleashing the Power of NativePHP Child Commands - New Media Entertainment","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/","og_locale":"en_US","og_type":"article","og_title":"Unleashing the Power of NativePHP Child Commands - New Media Entertainment","og_description":"NativePHP has come a long way\u2014its latest version is 2.1 (as of this writing). But if you\u2019ve ever tried to tweak your app, you know the frustration: every update can overwrite your custom changes, leaving you to repeat tedious steps over and over. What if there was a better way? A way to automate repetitive [&hellip;]","og_url":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/","og_site_name":"New Media Entertainment","article_published_time":"2025-12-06T14:26:48+00:00","article_modified_time":"2025-12-06T17:02:49+00:00","og_image":[{"width":1764,"height":634,"url":"https:\/\/www.nme.mobi\/blog\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-06-at-15.15.19.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/#article","isPartOf":{"@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/"},"author":{"name":"admin","@id":"https:\/\/www.nme.mobi\/blog\/#\/schema\/person\/af3e0d852abc6918b3b8fd617643536d"},"headline":"Unleashing the Power of NativePHP Child Commands","datePublished":"2025-12-06T14:26:48+00:00","dateModified":"2025-12-06T17:02:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/"},"wordCount":173,"commentCount":0,"image":{"@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/#primaryimage"},"thumbnailUrl":"https:\/\/www.nme.mobi\/blog\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-06-at-15.15.19.png","articleSection":["nativePHP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/","url":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/","name":"Unleashing the Power of NativePHP Child Commands - New Media Entertainment","isPartOf":{"@id":"https:\/\/www.nme.mobi\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/#primaryimage"},"image":{"@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/#primaryimage"},"thumbnailUrl":"https:\/\/www.nme.mobi\/blog\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-06-at-15.15.19.png","datePublished":"2025-12-06T14:26:48+00:00","dateModified":"2025-12-06T17:02:49+00:00","author":{"@id":"https:\/\/www.nme.mobi\/blog\/#\/schema\/person\/af3e0d852abc6918b3b8fd617643536d"},"breadcrumb":{"@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/#primaryimage","url":"https:\/\/www.nme.mobi\/blog\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-06-at-15.15.19.png","contentUrl":"https:\/\/www.nme.mobi\/blog\/wp-content\/uploads\/2025\/12\/Screenshot-2025-12-06-at-15.15.19.png","width":1764,"height":634},{"@type":"BreadcrumbList","@id":"https:\/\/www.nme.mobi\/blog\/unleashing-the-power-of-nativephp-child-commands\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.nme.mobi\/blog\/"},{"@type":"ListItem","position":2,"name":"Unleashing the Power of NativePHP Child Commands"}]},{"@type":"WebSite","@id":"https:\/\/www.nme.mobi\/blog\/#website","url":"https:\/\/www.nme.mobi\/blog\/","name":"New Media Entertainment","description":"Solutions for THAT problem","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.nme.mobi\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.nme.mobi\/blog\/#\/schema\/person\/af3e0d852abc6918b3b8fd617643536d","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/afd881acea40fb7d25b7d8485bfd177ba674c7193d777e38f1cf61ffc50b5d83?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/afd881acea40fb7d25b7d8485bfd177ba674c7193d777e38f1cf61ffc50b5d83?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/afd881acea40fb7d25b7d8485bfd177ba674c7193d777e38f1cf61ffc50b5d83?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/www.nme.one\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/posts\/170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/comments?post=170"}],"version-history":[{"count":5,"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/posts\/170\/revisions"}],"predecessor-version":[{"id":176,"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/posts\/170\/revisions\/176"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/media\/172"}],"wp:attachment":[{"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/media?parent=170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/categories?post=170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nme.mobi\/blog\/wp-json\/wp\/v2\/tags?post=170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}