{"id":20292160,"url":"https://github.com/apsislabs/carpenter","last_synced_at":"2026-05-09T11:45:06.396Z","repository":{"id":49539333,"uuid":"43720146","full_name":"apsislabs/carpenter","owner":"apsislabs","description":"A scaffolding plugin for WordPress Content Types","archived":false,"fork":false,"pushed_at":"2021-06-15T14:04:01.000Z","size":22,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-14T09:13:52.356Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apsislabs.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":"2015-10-05T23:41:37.000Z","updated_at":"2023-08-11T09:33:40.000Z","dependencies_parsed_at":"2022-09-21T08:32:31.898Z","dependency_job_id":null,"html_url":"https://github.com/apsislabs/carpenter","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/apsislabs%2Fcarpenter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apsislabs%2Fcarpenter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apsislabs%2Fcarpenter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apsislabs%2Fcarpenter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apsislabs","download_url":"https://codeload.github.com/apsislabs/carpenter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241787485,"owners_count":20020101,"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-11-14T15:15:53.772Z","updated_at":"2026-05-09T11:45:06.358Z","avatar_url":"https://github.com/apsislabs.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Carpenter\n\nCarpenter is a simple-to-use plugin for adding custom post-types and taxonomies to your WordPress plugins and themes. To use, simply install the Carpenter plugin, then include a post-type registration file somewhere in your theme or plugin files.\n\n## API\n\nPost types are built using standard PHP arrays. Here's an example file that would create a custom Post Type with its own custom Taxonomy.\n\n```\nif ( function_exists('build_post_types') ) {\n    $postTypeData = array(\n        'slug' =\u003e array(\n            'singular'   =\u003e 'Post Type',\n            'plural'     =\u003e 'Post Types',\n            'options'    =\u003e array(),\n            'taxonomies' =\u003e array(\n                'taxonomy_slug' =\u003e array(\n                    'singular' =\u003e 'Taxonomy',\n                    'plural'   =\u003e 'Taxonomies',\n                    'options'  =\u003e array(\n                        'hierarchical' =\u003e true\n                    ),\n                    'defaults' =\u003e array(\n                        'term_slug' =\u003e array(\n                            'name' =\u003e 'Default Term',\n                            'options' =\u003e array(\n                                'description' =\u003e 'A default term — this cannot be deleted by users.'\n                            )\n                        ),\n                        'child_term_slug' =\u003e array(\n                            'name' =\u003e 'Default Child Term',\n                            'options' =\u003e array(\n                                'parent' =\u003e 'term_slug' // parents are assigned by slug\n                            )\n                        )\n                    )\n                )\n            )\n        )\n    );\n\n    build_post_types($postTypeData);\n}\n```\n\n- **slug**: Your post type's slug, unless overriden.\n- **singular**: The singular name for your post type. This will be passed through WordPress's i18n functions.\n- **plural**: The plural name for your post type. This will be passed through WordPress's i18n functions.\n- **options**: For overriding the default options when necessary. This is an array that is identical to the `args` param for the native `register_post_type` function.\n- **taxonomies**: If you'd like to include a taxonomy for your post type, create it here.\n    + **taxonomy_slug**: The slug for your taxonomy.\n    + **singular**: The singular name for your taxonomy. This will be passed through WordPress's i18n functions.\n    + **plural**: The plural name for your taxonomy. This will be passed through WordPress's i18n functions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapsislabs%2Fcarpenter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapsislabs%2Fcarpenter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapsislabs%2Fcarpenter/lists"}