{"id":351181,"date":"2026-08-17T22:42:48","date_gmt":"2026-08-17T22:42:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bba-custom-types\/"},"modified":"2026-08-17T22:55:51","modified_gmt":"2026-08-17T22:55:51","slug":"bba-custom-types","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/bba-custom-types\/","author":16531958,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"BBA Custom Types","header_author":"Amit Sharma","header_description":"Create and manage custom post types and taxonomies from a modern WordPress admin dashboard.","assets_banners_color":"07163c","last_updated":"2026-08-17 22:55:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/builtbyamit.com\/projects\/bba-custom-types\/","header_author_uri":"https:\/\/builtbyamit.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"amitworx","date":"2026-08-17 22:42:38"},"1.0.1":{"tag":"1.0.1","author":"amitworx","date":"2026-08-17 22:55:51"}},"upgrade_notice":{"1.0.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3651792,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3651792,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3651792,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3651792,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3651792,"resolution":"1","location":"assets","locale":"","width":1212,"height":305},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3651792,"resolution":"2","location":"assets","locale":"","width":2478,"height":1382}},"screenshots":{"1":"BBA Custom Types dashboard overview.","2":"Custom post type cards in the expandable content-types section."}},"plugin_section":[],"plugin_tags":[19996,2007,1487,4925,91],"plugin_category":[57],"plugin_contributors":[266492],"plugin_business_model":[],"class_list":["post-351181","plugin","type-plugin","status-publish","hentry","plugin_tags-content-types","plugin_tags-cpt","plugin_tags-custom-post-types","plugin_tags-custom-taxonomies","plugin_tags-taxonomy","plugin_category-taxonomy","plugin_contributors-amitworx","plugin_committers-amitworx"],"banners":{"banner":"https:\/\/ps.w.org\/bba-custom-types\/assets\/banner-772x250.png?rev=3651792","banner_2x":"https:\/\/ps.w.org\/bba-custom-types\/assets\/banner-1544x500.png?rev=3651792","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bba-custom-types\/assets\/icon-128x128.png?rev=3651792","icon_2x":"https:\/\/ps.w.org\/bba-custom-types\/assets\/icon-256x256.png?rev=3651792","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bba-custom-types\/assets\/screenshot-1.png?rev=3651792","caption":"BBA Custom Types dashboard overview."},{"src":"https:\/\/ps.w.org\/bba-custom-types\/assets\/screenshot-2.png?rev=3651792","caption":"Custom post type cards in the expandable content-types section."}],"raw_content":"<!--section=description-->\n<p>BBA Custom Types lets site owners create and manage custom post types and taxonomies without editing theme files or writing registration code.<\/p>\n\n<p>Use it when your site needs structured content beyond posts and pages: projects, testimonials, events, resources, product collections, locations, or any other content model. The plugin gives you a clear admin workflow while keeping WordPress registration keys, rewrite bases, and taxonomy relationships visible.<\/p>\n\n<h4>What you can do<\/h4>\n\n<ul>\n<li>Create and manage custom post types from one dashboard.<\/li>\n<li>Create taxonomies and attach them to one or more custom post types.<\/li>\n<li>Set singular and plural labels, public URL slugs, and frontend rewrite bases.<\/li>\n<li>Choose whether a post type is public, has an archive, or is available in the block editor and REST API.<\/li>\n<li>Choose supported post features, including title, editor, excerpt, featured image, author, comments, revisions, custom fields, and page attributes.<\/li>\n<li>Configure taxonomy visibility, hierarchy, REST API support, and attached post types.<\/li>\n<li>Receive inline validation for duplicate or invalid slugs and internal keys before settings are saved.<\/li>\n<li>Update the taxonomy attachment choices immediately after creating a post type, without refreshing the page.<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<p>BBA Custom Types stores your definitions in WordPress options and registers them using WordPress APIs. A generated internal key such as <code>bbact_project<\/code> identifies a post type in the database. Treat that key as permanent after content has been created. The public URL can be adjusted independently with the Frontend URL base field.<\/p>\n\n<p>The plugin does not send data to external services and does not require an account.<\/p>\n\n<h3>Getting Started<\/h3>\n\n<h4>Create a custom post type<\/h4>\n\n<ol>\n<li>Go to BBA Custom Types and select <strong>New Custom Post Type<\/strong>.<\/li>\n<li>Enter a singular name, for example <code>Project<\/code>. The plugin fills related labels for you; you can adjust any of them before saving.<\/li>\n<li>Review the <strong>URL slug<\/strong>. This is used to generate the internal key on the first save.<\/li>\n<li>Optionally set a different <strong>Frontend URL base<\/strong>. For example, leave the key based on <code>project<\/code> but use <code>projects<\/code> for public URLs.<\/li>\n<li>Configure public visibility, archive support, REST API support, menu position, and supported post features.<\/li>\n<li>Save the custom post type, then use its new menu in WordPress admin to add content.<\/li>\n<\/ol>\n\n<h4>Create a taxonomy<\/h4>\n\n<ol>\n<li>Select <strong>New taxonomy<\/strong> from the BBA Custom Types dashboard.<\/li>\n<li>Enter a singular name, for example <code>Project Type<\/code>.<\/li>\n<li>Choose whether it is hierarchical. Hierarchical taxonomies behave like categories; non-hierarchical ones behave like tags.<\/li>\n<li>Select the custom post types that should use this taxonomy.<\/li>\n<li>Save the taxonomy. The new taxonomy appears with the selected post types immediately.<\/li>\n<\/ol>\n\n<h4>Change a public URL base safely<\/h4>\n\n<p>Do not change the URL slug of a post type that already has content unless you intend to create a different internal post type key. Instead, change <strong>Frontend URL base<\/strong> to alter the public URL path while retaining the existing internal key and its posts.<\/p>\n\n<p>After changing a rewrite base, go to Settings &gt; Permalinks and select <strong>Save Changes<\/strong> once to refresh WordPress rewrite rules.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress admin, go to Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Upload the BBA Custom Types ZIP file and activate it.<\/li>\n<li>Open BBA Custom Types from the WordPress admin menu.<\/li>\n<li>Create a custom post type or taxonomy using the steps below.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20bba%20custom%20types%20create%20both%20post%20types%20and%20taxonomies%3F\"><h3>Does BBA Custom Types create both post types and taxonomies?<\/h3><\/dt>\n<dd><p>Yes. You can manage both from the same dashboard and connect a taxonomy to one or more custom post types.<\/p><\/dd>\n<dt id=\"what%20is%20the%20difference%20between%20url%20slug%2C%20frontend%20url%20base%2C%20and%20internal%20key%3F\"><h3>What is the difference between URL slug, Frontend URL base, and Internal key?<\/h3><\/dt>\n<dd><p>The <strong>URL slug<\/strong> is used when first creating a type and helps generate its internal key. The <strong>Frontend URL base<\/strong> controls the public permalink path. The <strong>Internal key<\/strong> is the WordPress identifier, for example <code>bbact_project<\/code>; it should remain unchanged after you create content.<\/p><\/dd>\n<dt id=\"why%20did%20my%20posts%20disappear%20after%20changing%20the%20url%20slug%3F\"><h3>Why did my posts disappear after changing the URL slug?<\/h3><\/dt>\n<dd><p>Changing the URL slug can generate a new internal key. WordPress then treats it as a new post type, so posts associated with the old key are no longer shown in the new menu. Restore the original internal key to access that content again. To change only public URLs, use Frontend URL base instead.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20generated%20key%3F\"><h3>Can I edit the generated key?<\/h3><\/dt>\n<dd><p>The key is generated on first save so you can verify the intended slug before creation. Keep it stable after content exists, because WordPress uses it to associate posts, taxonomies, and metadata.<\/p><\/dd>\n<dt id=\"why%20is%20my%20new%20frontend%20url%20not%20working%20yet%3F\"><h3>Why is my new frontend URL not working yet?<\/h3><\/dt>\n<dd><p>Save your permalink settings at Settings &gt; Permalinks after changing a Frontend URL base. This refreshes WordPress rewrite rules.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20the%20block%20editor%20and%20rest%20api%3F\"><h3>Does the plugin support the block editor and REST API?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Show in REST<\/strong> for a custom post type or taxonomy to make it available to the block editor and REST API.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20include%20a%20custom%20field%20builder%3F\"><h3>Does the plugin include a custom field builder?<\/h3><\/dt>\n<dd><p>Not yet. The plugin is designed to grow toward custom-field management, but version 1.0.0 focuses on custom post types and taxonomies.<\/p><\/dd>\n<dt id=\"does%20it%20delete%20my%20content%20when%20i%20deactivate%20the%20plugin%3F\"><h3>Does it delete my content when I deactivate the plugin?<\/h3><\/dt>\n<dd><p>No. Deactivation does not delete posts, terms, or saved definitions. The registered types are inactive until the plugin is reactivated, so their content may not be accessible in the usual WordPress menus while it is inactive.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20use%20an%20external%20api%20or%20transmit%20site%20data%3F\"><h3>Does the plugin use an external API or transmit site data?<\/h3><\/dt>\n<dd><p>No. BBA Custom Types works entirely within your WordPress installation and does not require an account or third-party service.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added the project website link to the plugin header.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Create and manage custom post types and taxonomies from a modern WordPress admin UI.<\/li>\n<li>Added real-time validation, editable first-save slug workflow, modal editing, and live taxonomy attachment updates.<\/li>\n<\/ul>","raw_excerpt":"Create and manage custom post types and taxonomies from a focused WordPress admin dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/351181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=351181"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/amitworx"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=351181"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=351181"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=351181"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=351181"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=351181"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=351181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}