{"id":20940041,"url":"https://github.com/balbuf/composer-wp","last_synced_at":"2025-05-13T22:32:10.837Z","repository":{"id":62491396,"uuid":"50752848","full_name":"balbuf/composer-wp","owner":"balbuf","description":"Manage WordPress core, plugins, and themes with composer.","archived":false,"fork":false,"pushed_at":"2018-10-31T18:34:59.000Z","size":115,"stargazers_count":17,"open_issues_count":15,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-02T09:37:30.516Z","etag":null,"topics":["composer","wordpress"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/balbuf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-31T01:02:15.000Z","updated_at":"2024-05-24T18:41:34.000Z","dependencies_parsed_at":"2022-11-02T11:16:01.278Z","dependency_job_id":null,"html_url":"https://github.com/balbuf/composer-wp","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balbuf%2Fcomposer-wp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balbuf%2Fcomposer-wp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balbuf%2Fcomposer-wp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balbuf%2Fcomposer-wp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/balbuf","download_url":"https://codeload.github.com/balbuf/composer-wp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036819,"owners_count":22003657,"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":["composer","wordpress"],"created_at":"2024-11-18T23:08:40.134Z","updated_at":"2025-05-13T22:32:07.874Z","avatar_url":"https://github.com/balbuf.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Composer-WP: Composer for WordPress\n\nComposer-WP is a composer plugin that helps manage dependencies for WordPress sites.\nComposer-WP enables you to handle WordPress core releases, plugins, and themes entirely through composer.\n\n## Installation\n\n```\n$ composer global require balbuf/composer-wp\n```\n\n_**Composer-WP must be installed globally**_ so that the plugin will be loaded before\nthe project's dependencies are resolved.\n\nAs such, it is a good idea to include this as a build step for your project:\n\n```sh\ncomposer global require balbuf/composer-wp\ncomposer global update balbuf/composer-wp\ncomposer install\n```\n\nAlternatively, you can include this step as a script that composer will execute before installing or updating\npackages:\n\n```json\n  \"scripts\": {\n      \"pre-cmd\": [\n          \"composer global require balbuf/composer-wp \u0026\u0026 composer global update balbuf/composer-wp\"\n      ],\n      \"pre-install-cmd\": \"@pre-cmd\",\n      \"pre-update-cmd\": \"@pre-cmd\"\n  }\n```\n\n## About\n\nSimilar to [wpackagist](http://wpackagist.org/), Composer-WP leverages the official WordPress SVN repositories\nto provide plugins and themes as composer packages. However, the packages which Composer-WP provides are\n\"virtual\"\u0026mdash;Composer-WP creates the packages on-demand by directly referencing the SVN repos to gather\na listing of available packages. Because of this, there is no third-party package repository to query\nand the listing is always up-to-date.\n\nAdditionally, virtual packages enable the package properties to be dynamic. This allows you to change the\npackage type simply by adjusting the vendor name, for instance. Each vendor name maps to a package type,\nand the package type dictates where the package will be installed. For example, you can install a\nplugin as either \"regular\" or \"must use\" (`wordpress-plugin` or `wordpress-muplugin`, respectively)\njust by using the appropriate vendor name.\n\nIn addition to the official public WordPress repos, Composer-WP allows you to define your own plugin or theme repos\nthat contain zipped packages. This type of repo can either reference a local directory or a remote directory\naccessible via SSH. The zipped packages are just the standard plugin or theme zip files that you would upload\nand install via the WP Admin panel. Composer-WP scans these zips and pulls out meta information from the file\nheaders (e.g. plugin/theme name and version) to create virtual packages for these. This repo type is useful\nfor managing packages that are not publicly listed, such as proprietary or paid plugins/themes.\n\n## Features\n\n#### Built-in support for all official WordPress repositories\n* [WordPress.org Plugin Directory](https://wordpress.org/plugins/)\n* [WordPress.org Theme Directory](https://wordpress.org/themes/)\n* [WordPress core releases](https://wordpress.org/download/)\n* [WordPress.com free themes](https://theme.wordpress.com/themes/sort/free/)\n* [WordPress VIP Plugins](https://vip.wordpress.com/plugins/)\n* [WordPress core development repository](https://develop.svn.wordpress.org/) (includes the unit test framework and i18n tools)\n\n#### Manage proprietary/paid plugins and themes by simply dropping them in a directory\nComposer-WP provides a new repo type that can contain standard zipped plugins or themes in a private directory.\nThese zip files are scanned for meta information (e.g. plugin/theme name and version) to create virtual\npackages\u0026mdash;no `composer.json` file necessary. These zip files can either be stored in a local directory or\nin a directory on a remote server that is accessible via SSH. This is especially useful for paid plugins\nor themes that composer cannot download from a public source.\n\n#### Configurable \"virtual vendors\" which allow for dynamic package types\nFor example, you can install a plugin as either \"regular\" or \"must use\" just by swapping\nthe vendor name (e.g. `wordpress-plugin/my-plugin` or `wordpress-muplugin/my-plugin`). To resolve\nconflicts with vendors from other repositories, each virtual vendor name can be aliased or disabled entirely\nvia the `extra` property of your `composer.json` file.\n\n#### Load packages automatically with the included mu-plugins autoloader\nAny regular plugins installed as \"must use\" plugins will be automatically loaded in WordPress if the\nmu-plugins autoloader is enabled (the default setting). These \"must use\" plugins will be loaded\nin the order they appear in your `composer.json`, which allows you to explicitly specify a loading\nprecedence in case certain plugins depend on others. The mu-plugins autoloader will also pull in\ncomposer's own autoloader, allowing you to easily make use of any non-WordPress packages within your\nWordPress project. The mu-plugin autoloader is inspired by and based upon the [Bedrock autoloader](https://roots.io/).\n\n#### Full text searching on package name and description\nFor WordPress repositories that have an accompanying API\n([WordPress.org Plugins and Themes](http://codex.wordpress.org/WordPress.org_API) and\n[WordPress.com Themes](https://developer.wordpress.com/docs/api/)),\npackage discovery via `composer search` leverages the full text searching capabilities of the API\nto match packages based on their name, slug (composer package name), or description,\nin the same way that you would search these directories directly. For other WordPress repositories,\npackages are matched by slug or vendor name. Private zip repositories support full text searching\nbased on the name, slug, and description pulled from the plugin or theme header information.\n\n#### Built-in custom installer which helps you place packages where you need them\nComposer supports [custom installers](https://getcomposer.org/doc/articles/custom-installers.md)\nthat allow you to control where packages are installed to, e.g. plugins and themes go into your\n`wp-content` directory. For example, the [composer-installers](https://github.com/composer/installers)\nplugin is widely used and handles WordPress themes and plugins (but not core files). An additional\ninstaller plugin is not required as the Composer-WP installer handles all WordPress package types\nand is specifically catered towards WordPress projects.\n\n#### Access to plugins and themes no longer listed in the WordPress directories\nPackages that are no longer available in the public directories are usually still available from\nthe underlying SVN repos. While it is not recommended to rely on these packages, this ensures composer\ndoesn't suddenly fail if a package is removed from the public directory. Instead, composer will install\nthe discontinued package and display an \"abandoned\" notice to alert you.\n\n#### New releases are available immediately\nPackages are discovered directly from the source, so there is no sync delay or possibility of\ndowntime caused by a third-party mirror. New WordPress core releases, as well as plugin and theme updates,\nare available the moment they are released.\n\n#### WordPress.org Plugin and Theme repositories are cached efficiently\nThe WordPress.org plugin and theme directories are massive, each containing thousands of packages.\nComposer-WP uses a smart caching technique to obtain incremental updates to the package listing.\nThe first time a repository is used, Composer-WP obtains the entire package listing that exists\nat that point in time. On subsequent requests for that repository, Composer-WP checks only for new packages\nand determines a \"package delta\" with which to update the cached package list. This means dependency\nresolving is noticably faster than with wpackagist, whose cache is invalidated approximately every hour\nand requires the entire package listing to be downloaded again.\n\n#### Package listings are only downloaded when needed\nRepositories are auto-loaded as necessary based on the project's `composer.json` requirements\nand/or arguments passed to composer via the command line. For example, this means that if your project\nonly requires plugins from the WordPress.org directory, no time is wasted by downloading a\nlist of available themes that you don't care about.\n\n#### Graceful handling of packages that use non-standard version identifiers\nVersioning standards are not enforced for packages in the WordPress plugin repo. Instead\nof ignoring these packages, Composer-WP will try to normalize the version identifier so that it is\nparsable by composer. If all else fails, the package is still provided as a generic 'dev' version.\n\n## Documentation\n\n### Requirements\n\n* [composer](https://getcomposer.org/), of course\n* PHP 5.4+ (not yet tested with PHP 7)\n* `wp-zip` repo type requires a Unix-based OS, though other basic functionality _should_ work on Windows\n\n### Basic Usage\n\nFirst, make sure Composer-WP is installed globally:\n\n```\n$ composer global require balbuf/composer-wp\n```\n\nWithout any additional configuration, packages from the official WordPress directories are ready to be used:\n\n```\n$ composer require wordpress-plugin/oomph-clone-widgets\n```\n\n### Determining a Package Name\nThe package names used by Composer-WP are formed using a vendor name specific to the particular repo and\nthe package \"slug\":\n\n```\nvendor/slug\n```\n\nThe vendor names and package naming conventions for each built-in WordPress repo can be found [below](#built-in-wordpress-repositories).\n\n#### Plugins and Themes\nFor plugins and themes in the WordPress directories, the slug is the sanitized name of the package\nthat appears in its URL.\n\nFor example, suppose you want to install the Contact Form 7 plugin:\n[https://wordpress.org/plugins/contact-form-7/](https://wordpress.org/plugins/contact-form-7/). The slug of the plugin would be `contact-form-7`, and the default vendor name for the WordPress.org Plugin Directory is `wordpress-plugin`.\nThe full package name would be `wordpress-plugin/contact-form-7`.\n\n\u003e##### Package Name Bookmarklet\n\u003eFor convenience in determining the proper package name for a plugin or theme, you can add the following\n\u003eJavaScript snippet as a bookmarklet in your browser. If you are on the detail page for a plugin or theme on\n\u003e[wordpress.org](https://wordpress.org/), [theme.wordpress.com](https://theme.wordpress.com/themes/sort/free/),\n\u003eor [vip.wordpress.com](https://vip.wordpress.com/plugins/), this bookmarklet will present you with\n\u003ethe package name using the default vendor name for that repo:\n\u003e\n\u003e```js\n\u003ejavascript:void((function(r,l,w,h,s,p,e,u,m){l=l.match.bind(l);u=h+w+'\\\\.org\\\\/';if(m=l(new r(u+'themes'+s)))return p(e,w+'-theme/'+m[1]);if(m=l(new r(u+'plugins'+s)))return p(e,w+'-plugin/'+m[1]);if(m=l(new r(h+'theme\\\\.'+w+'\\\\.com\\\\/themes'+s)))return p(e,w+'-com/'+m[1]);if(m=l(new r(h+'vip\\\\.'+w+'\\\\.com\\\\/plugins'+s)))return p(e,w+'-vip/'+m[1]);alert(e+' not found')})(RegExp,location.href,'wordpress','^https?:\\\\/\\\\/','\\\\/([^\\\\/]+)\\\\/?$',prompt,'Composer-WP package name:'));\n\u003e```\n\n#### WordPress Core\n\nWordPress core releases use `wordpress` as both the vendor and slug:\n\n```\n$ composer require wordpress/wordpress\n```\n\n#### Find Packages with Composer Commands\n\n`composer search` and `composer show` are useful commands for finding and verifying packages.\n\nYou can use `composer search` to find a package name:\n\n```\n$ composer search contact form 7\n```\n\nWhere possible, Composer-WP uses full text searching to match against names and descriptions.\n\nYou can use `composer show -a` to get more information about a package or simply verify that it exists:\n\n```\n$ composer show -a wordpress-plugin/contact-form-7\n```\n\nIf the package exists, composer will provide additional details such as available versions.\n\n#### composer.json Example\n\nA simple `composer.json` file for a WordPress site might look like:\n\n```json\n{\n  \"name\": \"My WordPress Site\",\n  \"require\": {\n    \"wordpress/wordpress\": \"^4.4\",\n    \"wordpress-theme/zoo\": \"~1.8\",\n    \"wordpress-plugin/getty-images\": \"^2.4\",\n    \"wordpress-muplugin/wordpress-importer\": \"*\"\n  },\n  \"require-dev\": {\n    \"wordpress-plugin/debug-bar\": \"0.8.2\"\n  }\n}\n```\n\n#### Further Reading\n\nPlease refer to the official [composer documentation](https://getcomposer.org/doc/) for more information on general usage.\n\n### Additional Configuration\n\nComposer-WP has additional configuration options that can be specified in the `\"composer-wp\"` section\nof the [`\"extra\"` property](https://getcomposer.org/doc/04-schema.md#extra) of your `composer.json` file.\nThe default settings are configured with a typical WordPress project in mind, so you may not need to\nalter these options for basic use.\n\n```json\n  \"extra\": {\n    \"composer-wp\": {\n      \"repositories\": [],\n      \"vendors\": {},\n      \"installer\": {}\n    }\n  }\n```\n\n#### Repositories\n\nThe `\"repositories\"` property is an array of repository configurations that affect the built-in repos or\ndefine new custom repos.\n\n##### Built-In Repositories\n\nThe most simple use for the repositories property is specifying built-in repos to either enable or disable:\n\n```json\n\"repositories\": [\n  {\n    \"themes\": false\n  },\n  {\n    \"develop\": true\n  }\n]\n```\n\nThis configuration would disable the WordPress.org Themes Directory and enable the WordPress core development\nrepository. The repositories are referenced by their repo names which can be found below.\nAll built-in repos (except for the core development repository) are automatically loaded when\npackages that they handle are requested via `composer.json` or command line arguments, so generally, built-in\nrepos do not need to be enabled here. However, you can use this to disable repos that you don't want to use\n(for instance to speed up certain commands such as `composer search`). If you wish to use the WordPress\ncore development repo, you must explicitly enable it as shown above. Enabling or disabling built-in repos\ncan also be combined into a single object:\n\n```json\n\"repositories\": [\n  {\n    \"themes\": false,\n    \"develop\": true\n  }\n]\n```\n\n##### Custom Repositories\n\nYou can also define new repositories here:\n\n```json\n\"repositories\": [\n  {\n    \"type\": \"wp-zip\",\n    \"url\": \"/private-plugins\",\n    \"ssh\": \"user@example.com\",\n    \"max-depth\": 1\n  }\n]\n```\n\nComposer-WP supports two repository types: `wp-zip` and `wp-svn`. Each have their own properties, but share\nthe following:\n\n* **type** _(required)_\n\n  Defines the type of repository:\n\n  * `wp-zip` - this repository type allows you to scan a directory for plugin or theme zip files either locally or\n  remotely via SSH\n  * `wp-svn` - this repository type is used internally for the built-in repos and allows a public SVN repository\n  to act as a composer package repository\n\n* **package-types** _(required)_\n\n  This is an object that defines which package types are supported and maps types to vendor names. For example:\n  ```json\n  \"package-types\": {\n    \"wordpress-plugin\": \"wpackagist-plugin\",\n    \"wordpress-theme\": \"wpackagist-theme\"\n  }\n  ```\n  This would allow a repo to handle packages that use wpackagist's vendor names.\n\n* **url** _(required)_\n\n  Depending on the repo type, this defines either a URL or a path.\n\nProperties specific to repo type:\n\n* **wp-zip**\n\n  * **url** _(required)_\n\n    The url property defines the directory path where the zip files reside. For SSH repos, this is _only_ the path,\n    not including the server's hostname.\n\n  * **ssh**\n\n    This property defines the SSH connection information (if applicable): `[user@]host`. The format is\n    exactly how it would be passed to `ssh`. Default is `null` - repo path is local.\n\n  * **package-types** _(required)_\n\n    Default:\n    ```json\n    \"package-types\": {\n      \"wordpress-plugin\": \"wordpress-plugin\",\n      \"wordpress-muplugin\": \"wordpress-muplugin\",\n      \"wordpress-theme\": \"wordpress-theme\"\n    }\n    ```\n\n  * **max-depth**\n\n    Maximum number of directories to traverse within the specified path. Default is `null` - no limit.\n\n\n#### Vendors\n\nThe `\"vendors\"` property allows you to create vendor aliases and disable existing vendor names. This\nproperty is a simple object that maps a new vendor name to an existing name, or maps an existing\nvendor name to `false` to disable its use:\n\n```json\n\"vendors\": {\n  \"wpackagist-plugin\": \"wordpress-plugin\",\n  \"wpcom-themes\": \"wordpress-com\",\n  \"wordpress-com\": false\n}\n```\n\nThe above would configuration would allow plugins to be required as if they came from wpackagist and\nwould replace the default WordPress.com Themes repo vendor name of `wordpress-com` with `wpcom-themes`.\nNote that the original vendor name of `wordpress-com` will no longer be recognized, but both\n`wpackagist-plugin` and `wordpress-plugin` will be recognized.\n\n#### Installer\n\nThe `\"installer\"` property allows you to configure the built-in installer. The installer is designed\nto play nicely with other custom installers you may be using. That is, if there are no other custom\ninstallers, Composer-WP will handle WordPress packages by default. However, if there is another\ncustom installer (such as [composer-installers-extender](https://github.com/oomphinc/composer-installers-extender))\nthat is configured to handle WordPress packages, Composer-WP will allow that installer to handle\nthe packages unless explicitly instructed to do so (by specifying install paths).\n\nThe built-in installer has the following properties:\n\n* **wordpress-path** (_default:_ `wp`)\n\n  This defines where you wish WordPress core files to be installed to, relative to the project root.\n  Note that when composer installs a package, it completely empties the target directory before\n  installing the new files. As such, the WordPress path should be designated for WordPress core files\n  only, as anything else (e.g. plugins, themes, and `wp-config.php`) will be wiped away on install or update.\n  It is recommended that you keep your `wp-config.php` file in the parent directory of the WordPress path\n  (WordPress can find it there automatically) and replace the `wp-content` directory with a symlink to\n  your real `wp-content` folder. (See the `symlink-wp-content` option below.)\n\n* **wp-content-path** (_default:_ `wp-content`)\n\n  This defines where themes, plugins, and mu-plugins will be installed to, relative to the project root.\n  The path will be treated like a standard `wp-content` folder, i.e. packages will be installed to the\n  `themes`, `plugins`, and `mu-plugins` subdirectories of this path. This must be specified to use the\n  `symlink-wp-content` option.\n\n* **wpmu-plugin-dir**\n\n  This allows you to specify a mu-plugins path different from the standard one placed within wp-content.\n  WordPress allows you to define a constant which alters the `mu-plugins` path, so this allows you to\n  install mu-plugin packages to your alternate path. If specified, this supersedes the `wp-content`-based\n  path that would be used otherwise.\n\n* **path-mapping**\n\n  If you require more granular control of the WordPress package types, you can specify each type\n  separately here with a mapping to its install path. If you make use of the `wordpress-path` and/or\n  `wp-content-path` properties, you likely will not need to use this option.\n\n  Example:\n  ```json\n  \"path-mapping\": {\n    \"wordpress-theme\": \"wp-content/themes/my-custom-themes\"\n  }\n  ```\n\n  Note that `wordpress-muplugin` and `wordpress-core` types are superseded by `wpmu-plugin-dir`\n  and `wordpress-path` properties, respectively, if explicitly set.\n\n* **symlink-wp-content** (_default:_ `true`)\n\n  This option allows Composer-WP to automatically replace the `wp-content` directory that comes\n  with the WordPress core files with a symlink to the directory set in `wp-content-path`. This\n  allows the WordPress core files to be cleared and reinstalled as necessary without affecting\n  any other packages. Whenever WordPress core is updated, the symlink will be restored. Note\n  that the original `wp-content` directory included in the WordPress core release is deleted,\n  meaning if you wish to use the sample WordPress themes (e.g. \"twentysixteen\") or plugins,\n  you'll have to require them separately in `composer.json`. In order to use this option,\n  the `wordpress-path` _and_ `wp-content-path` properties must be defined (default values\n  are considered) and said paths must exist (e.g. there are packages that are installed to these\n  paths).\n\n* **mu-plugin-autoloader** (_default:_ `true`)\n\n  This option allows you to enable or disable the included mu-plugins autoloader. If enabled,\n  all regular plugins installed in the mu-plugins directory will be automatically loaded in\n  WordPress in the order that they are defined in `composer.json`. Additionally, the composer\n  autoloader will be loaded into WordPress. In order to use this option, either the\n  `wp-content-path` or `wpmu-plugin-dir` must be defined (default values are considered)\n  and must exist.\n\n* **autoloader-path**\n\n  This option allows you to specify an explicit path to your composer autoloader file that will\n  be included by the mu-plugin autoloader. If not specified, the value will be a relative path\n  from either the WordPress root or the mu-plugins folder to your vendor folder, with `autoload.php`\n  appended. You can also override this setting with the `COMPOSER_AUTOLOADER` constant within your\n  WordPress install. The constant, if defined, will take precedence. You can set the value of this\n  constant to false to not include any composer autoloader.\n\n* **dev-first** (_default:_ `false`)\n\n  This option determines if `require-dev` mu-plugins will be loaded first by the autoloader.\n  By default, the mu-plugins in `require` are loaded before any in `require-dev`.\n\n\nThe installer can be disabled entirely by setting this property to false:\n\n```json\n\"installer\": false\n```\n\n### Built-in WordPress Repositories\n\nComposer-WP has several built-in repositories that are automatically loaded when you request packages from them.\nEach repo has its own set of vendor names which are used to determine which repos to load for the request packages.\nThe repo name can be used to explicitly enable or disable the given repo via your `composer.json` file (see below).\n\n#### WordPress.org Plugins ([https://wordpress.org/plugins/](https://wordpress.org/plugins/))\nPlugins developed by the WordPress community.\n\n||Details|\n|---|---|\n|**Repo Name**|`plugins`|\n|**Vendor Names**|`wordpress-plugin` (package type: `wordpress-plugin`) and `wordpress-muplugin` (package type: `wordpress-muplugin`)|\n|**Package Names**|Package names match the slug found in the plugin's URL, e.g. [https://wordpress.org/plugins/oomph-clone-widgets/](https://wordpress.org/plugins/oomph-clone-widgets/) is `oomph-clone-widgets`.|\n|**Versions**|Version releases as well as `dev-trunk`.|\n|**SVN Source**|[https://plugins.svn.wordpress.org/](https://plugins.svn.wordpress.org/)|\n|**Caching**|The package listing is cached for as long as `composer config cache-ttl` if it doesn't change. However, each time the repo is used, a \"package delta\" is obtained to update this cached list with new package names, so the cache is likely to change regularly.|\n\n#### WordPress.org Themes ([https://wordpress.org/themes/](https://wordpress.org/themes/))\nThemes developed by the WordPress community.\n\n||Details|\n|---|---|\n|**Repo Name**|`themes`|\n|**Vendor Names**|`wordpress-theme` (package type: `wordpress-theme`)|\n|**Package Names**|Package names match the slug found in the theme's URL, e.g. [https://wordpress.org/themes/twentyfourteen/](https://wordpress.org/themes/twentyfourteen/) is `twentyfourteen`.|\n|**Versions**|Version releases only; no `dev-trunk`.|\n|**SVN Source**|[https://themes.svn.wordpress.org/](https://themes.svn.wordpress.org/)|\n|**Caching**|The package listing is cached for as long as `composer config cache-ttl` if it doesn't change. However, each time the repo is used, a \"package delta\" is obtained to update this cached list with new package names, so the cache is likely to change regularly.|\n\n#### WordPress Core ([https://wordpress.org/download/](https://wordpress.org/download/))\nWordPress core releases, including major versions and security/bugfix updates.\n\n||Details|\n|---|---|\n|**Repo Name**|`core`|\n|**Vendor Names**|`wordpress` or `wordpress-core` (package type: `wordpress-core`)|\n|**Package Names**|`wordpress` is the only package.|\n|**Versions**|Version releases as well as `dev-trunk`.|\n|**SVN Source**|[https://core.svn.wordpress.org/](https://core.svn.wordpress.org/)|\n|**Caching**|This package listing is not cached by default to ensure updates are available immediately.|\n\n#### WordPress.com Themes ([https://theme.wordpress.com/](https://theme.wordpress.com/themes/sort/free/))\nFree themes that are offered for WordPress.com hosted sites but may also be used on self-hosted sites.\n\n||Details|\n|---|---|\n|**Repo Name**|`wpcom-themes`|\n|**Vendor Names**|`wordpress-com` (package type: `wordpress-theme`)|\n|**Package Names**|Package names match the slug found in the theme's URL, e.g. [https://theme.wordpress.com/themes/balloons/](https://theme.wordpress.com/themes/balloons/) is `balloons`.|\n|**Versions**|`dev-master` only; no individual version releases.|\n|**SVN Source**|[https://wpcom-themes.svn.automattic.com/](https://wpcom-themes.svn.automattic.com/)|\n|**Caching**|This package listing is cached for 1 week by default as the list changes infrequently.|\n\n#### WordPress VIP Plugins ([https://vip.wordpress.com/plugins/](https://vip.wordpress.com/plugins/))\nPlugins that are sanctioned for use on WordPress VIP hosted sites. _Note:_ These plugins may not work correctly outside of\nthe WordPress VIP environment. See the [VIP Quickstart documentation](https://vip.wordpress.com/documentation/quickstart/)\nfor more information about replicating the WordPress VIP environment.\n\n||Details|\n|---|---|\n|**Repo Name**|`vip-plugins`|\n|**Vendor Names**|`wordpress-vip` (package type: `wordpress-plugin`)|\n|**Package Names**|Package names generally match the slug found in the plugin's URL, e.g. [https://vip.wordpress.com/plugins/ooyala/](https://vip.wordpress.com/plugins/ooyala/) is `ooyala`. WordPress VIP also has a \"release candidate\" process to evaluate plugins before they are officially released. These package names are appended with `-rc`.|\n|**Versions**|`dev-master` only; no individual version releases.|\n|**SVN Source**|[https://vip-svn.wordpress.com/plugins/](https://vip-svn.wordpress.com/plugins/)|\n|**Caching**|This package listing is cached for 1 week by default as the list changes infrequently.|\n\n#### WordPress Core - Development Version ([https://develop.svn.wordpress.org/](https://develop.svn.wordpress.org/))\nThe WordPress core development repo stays in sync with the main core repo but also includes the unit test framework and\nadditional tools for internationalization. _Note:_ Unlike the the other built-in repos, the `develop` repo must be explicitly\nenabled to use as a dependency, as it shares a vendor namespace with the regular `core` repo.\n\n||Details|\n|---|---|\n|**Repo Name**|`develop`|\n|**Vendor Names**|`wordpress` or `wordpress-core` (package type: `wordpress-develop`)|\n|**Package Names**|`develop` is the only package.|\n|**Versions**|Version releases as well as `dev-trunk`.|\n|**SVN Source**|[https://develop.svn.wordpress.org/](https://core.svn.wordpress.org/)|\n|**Caching**|This package listing is not cached by default to ensure updates are available immediately.|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalbuf%2Fcomposer-wp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbalbuf%2Fcomposer-wp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalbuf%2Fcomposer-wp/lists"}