{"id":207680,"date":"2024-10-12T12:06:46","date_gmt":"2024-10-12T12:06:46","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sql-to-cpt\/"},"modified":"2025-11-19T16:28:56","modified_gmt":"2025-11-19T16:28:56","slug":"sql-to-cpt","status":"publish","type":"plugin","link":"https:\/\/dv.wordpress.org\/plugins\/sql-to-cpt\/","author":22050467,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.3","stable_tag":"1.3.3","tested":"6.8.5","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"SQL to CPT","header_author":"badasswp","header_description":"Import & Convert SQL files to Custom Post Types (CPT).","assets_banners_color":"000000","last_updated":"2025-11-19 16:28:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/badasswp\/sql-to-cpt","header_author_uri":"https:\/\/github.com\/badasswp","rating":0,"author_block_rating":0,"active_installs":0,"downloads":969,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"badasswp","date":"2024-10-12 12:06:32"},"1.0.1":{"tag":"1.0.1","author":"badasswp","date":"2024-10-12 12:06:32"},"1.1.0":{"tag":"1.1.0","author":"badasswp","date":"2024-12-08 13:23:42"},"1.2.0":{"tag":"1.2.0","author":"badasswp","date":"2025-01-10 21:46:26"},"1.2.1":{"tag":"1.2.1","author":"badasswp","date":"2025-01-14 16:00:59"},"1.2.2":{"tag":"1.2.2","author":"badasswp","date":"2025-02-04 16:24:58"},"1.3.0":{"tag":"1.3.0","author":"badasswp","date":"2025-02-11 11:21:23"},"1.3.1":{"tag":"1.3.1","author":"badasswp","date":"2025-03-28 11:17:22"},"1.3.2":{"tag":"1.3.2","author":"badasswp","date":"2025-11-19 16:28:56"},"1.3.3":{"tag":"1.3.3","author":"badasswp","date":"2025-11-19 16:28:56"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3167545,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3167545,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3167545,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3167545,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.2.0","1.2.1","1.2.2","1.3.0","1.3.1","1.3.2","1.3.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3204374,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3204374,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3204374,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3204374,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Import SQL File screen - Upload your SQL File by clicking on the 'Import SQL File' button.","2":"Import Modal - Select the SQL file you intend to import.","3":"Custom Post Type page - List of uploaded data from SQL file.","4":"Custom Post Type screen - Imported SQL data showing custom fields in CPT."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[4154,2007,87,86,1625],"plugin_category":[59],"plugin_contributors":[228863],"plugin_business_model":[],"class_list":["post-207680","plugin","type-plugin","status-publish","hentry","plugin_tags-convert","plugin_tags-cpt","plugin_tags-import","plugin_tags-post","plugin_tags-sql","plugin_category-utilities-and-tools","plugin_contributors-badasswp","plugin_committers-badasswp"],"banners":{"banner":"https:\/\/ps.w.org\/sql-to-cpt\/assets\/banner-772x250.png?rev=3167545","banner_2x":"https:\/\/ps.w.org\/sql-to-cpt\/assets\/banner-1544x500.png?rev=3167545","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sql-to-cpt\/assets\/icon-128x128.png?rev=3167545","icon_2x":"https:\/\/ps.w.org\/sql-to-cpt\/assets\/icon-256x256.png?rev=3167545","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/sql-to-cpt\/assets\/screenshot-1.png?rev=3204374","caption":"Import SQL File screen - Upload your SQL File by clicking on the 'Import SQL File' button."},{"src":"https:\/\/ps.w.org\/sql-to-cpt\/assets\/screenshot-2.png?rev=3204374","caption":"Import Modal - Select the SQL file you intend to import."},{"src":"https:\/\/ps.w.org\/sql-to-cpt\/assets\/screenshot-3.png?rev=3204374","caption":"Custom Post Type page - List of uploaded data from SQL file."},{"src":"https:\/\/ps.w.org\/sql-to-cpt\/assets\/screenshot-4.png?rev=3204374","caption":"Custom Post Type screen - Imported SQL data showing custom fields in CPT."}],"raw_content":"<!--section=description-->\n<p>This plugin helps you <strong>migrate legacy SQL database tables<\/strong> to WordPress' <strong>Custom Post Types (CPT)<\/strong>. It provides a <strong>user-friendly UI interface<\/strong> that enables users upload an SQL file which is then parsed and converted to a CPT with meta data that is recognisable within WordPress.<\/p>\n\n<p>If you ever need to migrate a non-WordPress database table into WP, look no further. This is exactly what you need!<\/p>\n\n<h4>\u2714\ufe0f Features<\/h4>\n\n<p>Our plugin comes with everything you need to easily migrate SQL tables to CPTs.<\/p>\n\n<p>\u2714\ufe0f <strong>Import &amp; Convert to CPT<\/strong> feature.\n\u2714\ufe0f <strong>Quick &amp; Lightening Fast uploads<\/strong>.\n\u2714\ufe0f <strong>Friendly, User Interface (UI)<\/strong>.\n\u2714\ufe0f <strong>Custom Post Type Capabilities<\/strong>.\n\u2714\ufe0f <strong>Error Loggging Capabilities<\/strong>.\n\u2714\ufe0f <strong>Custom Hooks<\/strong> to help you customize plugin behaviour.\n\u2714\ufe0f Available in <strong>mutiple langauges<\/strong> such as Arabic, Chinese, Hebrew, Hindi, Russian, German, Italian, Croatian, Spanish &amp; French languages.\n\u2714\ufe0f <strong>Backward compatible<\/strong>, works with most WP versions.<\/p>\n\n<h4>\u2728 Getting Started<\/h4>\n\n<p>Head over to the <strong>SQL to CPT<\/strong> options page. Upload an SQL file of your choice by clicking on the <strong>Import SQL File<\/strong>. This would analyse your SQL table and show you the <strong>table name<\/strong> and <strong>table columns<\/strong> you are about to import. Once ready, click on the <strong>Convert to CPT<\/strong> button to complete the process.<\/p>\n\n<p>On import completion, you should now be re-directed to the Custom Post Type page of your newly imported data!<\/p>\n\n<p>You can get a taste of how this works, by using the <a href=\"https:\/\/tastewp.com\/create\/NMS\/8.0\/6.7.0\/sql-to-cpt\/twentytwentythree?ni=true&amp;origin=wp\">demo<\/a> link.<\/p>\n\n<h4>\u26a1 Why SQL to CPT ?<\/h4>\n\n<ol>\n<li>Because you need something that works great and fast!<\/li>\n<li>Because you want to port your data across platforms easily.<\/li>\n<li>Because you don't want to spend hours building custom software for this.<\/li>\n<li>Because you think <strong>SQL to CPT<\/strong> is cool.<\/li>\n<\/ol>\n\n<p>NB: At the moment, the <strong>SQL to CPT<\/strong> plugin currently does not provide a way for users to import more than one SQL table at a time, this feature should be available in future releases as well as the option to remove unused CPTs.<\/p>\n\n<h4>\ud83d\udd0c\ud83c\udfa8 Plug and Play or Customize<\/h4>\n\n<p>The SQL to CPT plugin is built to work right out of the box. Simply install, activate and start using.<\/p>\n\n<p>Want to add your personal touch? All of our documentation can be found <a href=\"https:\/\/github.com\/badasswp\/sql-to-cpt\">here<\/a>. You can override the plugin's behaviour with custom logic of your own using <a href=\"https:\/\/github.com\/badasswp\/sql-to-cpt?tab=readme-ov-file#hooks\">hooks<\/a>.<\/p>\n\n<h3>Contribute<\/h3>\n\n<p>If you'd like to contribute to the development of this plugin, you can find it on <a href=\"https:\/\/github.com\/badasswp\/sql-to-cpt\">GitHub<\/a>.<\/p>\n\n<p>To build, clone repo and run <code>yarn install &amp;&amp; yarn build<\/code><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Go to 'Plugins &gt; Add New' on your WordPress admin dashboard.<\/li>\n<li>Search for 'SQL To CPT' plugin from the official WordPress plugin repository.<\/li>\n<li>Click 'Install Now' and then 'Activate'.<\/li>\n<li>Head over to the 'SQL to CPT' options page.<\/li>\n<li>Upload an SQL file of your choice and convert it to a Custom Post Type (CPT).<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<p>= 1.3.3\n* Bump up plugin version.\n* Tested up to WP 6.8\n* Update README docs.<\/p>\n\n<p>= 1.3.2\n* Lint <code>.wp-env<\/code> file correctly.\n* Update setup.sh bash script.\n* Tested up to WP <code>6.7.2<\/code>.<\/p>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Enforce WP linting style across plugin.<\/li>\n<li>Feat: Add WP local dev env for contributors.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Fix: Ensure REST response on SQL Import.<\/li>\n<li>Feat: Add Progress bar to Parse activity.<\/li>\n<li>Feat: Implement Purge component.<\/li>\n<li>Refactor: Move Interval logic to ProgressBar component.<\/li>\n<li>Refactor: Move Handle logic away from App to ImportButton component.<\/li>\n<li>Chore: Update doc blocks for components.<\/li>\n<li>Tested up to WP 6.7.1<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Refactor: Parser instance via DI logic.<\/li>\n<li>Fix: Breaking WP dependency.<\/li>\n<li>Fix: Failing Unit tests.<\/li>\n<li>Tested up to WP 6.7.1<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Chore: Add accessibility roles for components.<\/li>\n<li>Updated Unit Tests for same.<\/li>\n<li>Tested up to WP 6.7.1.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Feat: Implement Import Progress bar.<\/li>\n<li>Refactor: <code>sqlt_cpt_post_title<\/code> to <code>sqlt_cpt_post_values<\/code>.<\/li>\n<li>Chore: Clean up App components.<\/li>\n<li>Chore: Fix typos in README.<\/li>\n<li>Add Unit Tests &amp; Test Coverage.<\/li>\n<li>Tested up to WP 6.7.1.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fix missing <code>Import<\/code> route class.<\/li>\n<li>Implement <code>Post<\/code> class for handling CPTs.<\/li>\n<li>Add new Custom Hooks: <code>sqlt_cpt_post_title<\/code>, <code>sqlt_cpt_post_labels<\/code>, <code>sqlt_cpt_post_options<\/code>.<\/li>\n<li>Add new screenshot images.<\/li>\n<li>Update README notes.<\/li>\n<li>Tested up to WP 6.7.1.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Change hook names to use <code>sqlt<\/code> prefix.<\/li>\n<li>Custom Hooks now bear <code>sqlt_cpt_table_name<\/code>, <code>sqlt_cpt_table_columns<\/code>, <code>sqlt_cpt_table_rows<\/code>.<\/li>\n<li>Tested up to WP 6.6.2.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Add ability to upload SQL file to Custom Post Type (CPT).<\/li>\n<li>Custom Hooks <code>sqlt_cpt_table_name<\/code>, <code>sqlt_cpt_table_columns<\/code>, <code>sqlt_cpt_table_rows<\/code>.<\/li>\n<li>Custom Options page.<\/li>\n<li>Fix bugs &amp; linting issues.<\/li>\n<li>Tested up to WP 6.6.2.<\/li>\n<\/ul>","raw_excerpt":"Import &amp; Convert SQL tables to Custom Post Types (CPT). Migrate legacy SQL table data to WordPress custom post types of your choice. It&#039;s super fast!","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/207680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=207680"}],"author":[{"embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/badasswp"}],"wp:attachment":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=207680"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=207680"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=207680"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=207680"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=207680"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=207680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}