{"id":15524694,"url":"https://github.com/hellofromtonya/theme-api","last_synced_at":"2025-10-30T00:32:12.388Z","repository":{"id":98370133,"uuid":"63109638","full_name":"hellofromtonya/Theme-API","owner":"hellofromtonya","description":"WordPress Theme API - Adds additional functionality currently missing from Core","archived":false,"fork":false,"pushed_at":"2016-07-12T00:09:50.000Z","size":11,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T22:41:22.531Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellofromtonya.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-11T23:32:57.000Z","updated_at":"2020-02-15T10:24:53.000Z","dependencies_parsed_at":"2023-05-07T12:47:06.983Z","dependency_job_id":null,"html_url":"https://github.com/hellofromtonya/Theme-API","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofromtonya%2FTheme-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofromtonya%2FTheme-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofromtonya%2FTheme-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellofromtonya%2FTheme-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellofromtonya","download_url":"https://codeload.github.com/hellofromtonya/Theme-API/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250392106,"owners_count":21423017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T10:52:45.540Z","updated_at":"2025-10-30T00:32:12.335Z","avatar_url":"https://github.com/hellofromtonya.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Theme API Plugin\n\nThis plugin adds functionality and features for themes which is currently missing in WordPress core.\n\t \t\n## Features\nIt's really quite simply as it adds the following functionality:\n\n### Update/upgrade - Customization folder handling\nCurrently, if a theme is customized, there is no automatic means for the themer or theme shop to push an update to the site without blowing away all of the customizations.  This API provides the means for themers:\n\n- to specify a customization folder, where all customization can be placed and loaded from a bootstrap\n- push updates and not overwrite the customization folder\n\n#### Update Request Packet - New Parameter Required\nWithin the upgrade request packet, the themer will specify an array of  `customization` parameters in the `hook_extras` parameter.  Currently, the packet is as follows:\n\n```\n$args = array(\n \t'source'                      =\u003e '',\n \t'destination'                 =\u003e '',\n \t'clear_destination'           =\u003e false,\n \t'clear_working'               =\u003e false,\n \t'abort_if_destination_exists' =\u003e true,\n \t'hook_extra'                  =\u003e array(\n \t\t'theme'  =\u003e 'your theme name',\n \t\t'type'   =\u003e 'theme',\n \t\t'action' =\u003e 'update',\n \t),\n );\n ```\n\nTo use a customization folder and preserve it, the themer will add the following new parameters to the `hook_extra` parameter:\n\n```\n \t'hook_extra'                  =\u003e array(\n \t\t'theme'  =\u003e 'your theme name',\n \t\t'type'   =\u003e 'theme',\n \t\t'action' =\u003e 'update',\n \t\t// this is the new parameter when you want to preserve a customization bucket\n \t\t// for developers to do their thang\n \t\t'customization' =\u003e array(\n \t\t\t'preserve'    =\u003e true,\n \t\t\t'folder_name' =\u003e 'customization', // name of the customization folder\n \t\t\t'path'        =\u003e '', // path to the customization folder\n \t\t),\n \t),\n```\n\n## Installation\n\nTo install this plugin, you can either download or clone the GitHub repository onto your local machine.\n\nInstallation from GitHub is as simple as cloning the repo onto your local machine.  To clone the repo, do the following:\n\n1. Using PhpStorm, open your project and navigate to `wp-content/plugins/`. (Or open terminal and navigate there).\n2. Then type: `git clone https://github.com/hellofromtonya/Theme-API.git`.\n3. Make sure you that you rename the folder to just `theme-api`.\n\n## Configuration\nEverything is configurable using the configuration files found in the `config` folder.\n\n## Contributions\n\nAll feedback, bug reports, and pull requests are welcome.\n\n## Status\n\nThis plugin is in development and is not ready to use just yet.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellofromtonya%2Ftheme-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellofromtonya%2Ftheme-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellofromtonya%2Ftheme-api/lists"}