{"id":40888,"date":"2025-03-30T23:48:45","date_gmt":"2025-03-31T04:48:45","guid":{"rendered":"http:\/\/artsincubator.ca\/digitalsalvage\/?p=40888"},"modified":"2025-03-31T01:09:35","modified_gmt":"2025-03-31T06:09:35","slug":"create-contact-wordpress-plugin-with-ai","status":"publish","type":"post","link":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/","title":{"rendered":"Create a Simple WordPress Contact Form Plugin With AI and Vibe Coding. For Free!"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Create Free WordPress Plug-Ins with AI Tools and Vibe Coding<\/h3>\n\n\n\n<p>These days having a contact form is essential for any website. Yet, many struggle with costly subscriptions or complicated setups when trying to implement one. That&#8217;s all changed, thanks to the emergence of AI tools and this cool approach everyone&#8217;s using called vibe coding. With OpenAI&#8217;s API, creating plugins is no longer just for coders. We\u2019ll guide you through using this technology to create a free, customizable contact form plugin in minutes!<\/p>\n\n\n\n<p>Vibe coding is revolutionizing the way we approach WordPress plugin development. This exciting way of doing things allows anyone to generate customizable contact forms effortlessly, leveraging the power of AI tools. Whether you&#8217;re a seasoned developer or a non-coder, vibe coding is a fun way to explore enhancing your website&#8217;s functionality with ease.<\/p>\n\n\n\n<p>It&#8217;s actually easy! For us, we&#8217;re using tools and resources from the <a href=\"https:\/\/openai.smapply.org\/prog\/openai_researcher_access_program\/\">OpenAI Researcher Access Program<\/a>, but anyone can use <a href=\"https:\/\/chatgpt.com\">ChatGPT<\/a> or any other AI tool like <a href=\"https:\/\/gemini.google.com\/\">Google Gemini<\/a> or <a href=\"https:\/\/www.deepseek.com\/\">DeepSeek<\/a>. Most all generative tools can do it, but for us we love using OpenAI. Let&#8217;s get started.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Detailed Guide: How to Manually Install Your Simple Contact Form WordPress Plugin<\/h2>\n\n\n\n<p><em><strong>BEFORE YOU GET STARTED<\/strong>! First and foremost, if you&#8217;re trying this out for the first time, always back up your web site before you start messing around. We tested this approach ourselves on a local copy before we did it, and we worked out fine. But everyone is different. <strong>Remember the Golden Rule: Always back up your site before you go throwing code into it! <\/strong>Seriously, unless you know what you&#8217;re doing, don&#8217;t take chances. You want to make your web site better, not wreck it! Ok. Ready? Let&#8217;s go.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"520\" src=\"http:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/simple-contact-form-with-ai-wordpress-plugin-for-free-1024x520.jpeg\" alt=\"Here's a sample of what our simple contact form plugin form looks like!\" class=\"wp-image-40894\" srcset=\"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/simple-contact-form-with-ai-wordpress-plugin-for-free-1024x520.jpeg 1024w, https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/simple-contact-form-with-ai-wordpress-plugin-for-free-300x152.jpeg 300w, https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/simple-contact-form-with-ai-wordpress-plugin-for-free-768x390.jpeg 768w, https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/simple-contact-form-with-ai-wordpress-plugin-for-free-1536x781.jpeg 1536w, https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/simple-contact-form-with-ai-wordpress-plugin-for-free.jpeg 1574w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Here&#8217;s a sample of what our simple contact form plugin form looks like!<\/figcaption><\/figure>\n\n\n\n<p>Creating your own WordPress plugin is an empowering feeling! Thanks to AI-assisted development and vibe coding, tasks formerly reserved for experienced coders have become accessible to everyone\u2014even total beginners. In this example, we&#8217;ve used OpenAI\u2019s powerful API to quickly generate a simple, secure, and efficient contact form plugin for your WordPress website. Now let&#8217;s guide you step-by-step through the easy process of installing and activating your newly created contact form plugin manually.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Preparing Your Plugin Files<\/strong><\/h3>\n\n\n\n<p>First, let\u2019s get organized. On your local machine (your laptop or desktop computer), start by creating a new folder specifically for your custom plugin files. Naming this folder clearly will help keep everything neat: something descriptive like <code>simplecontactform<\/code> works wonderfully.<\/p>\n\n\n\n<p>Now open a plain-text editor like Notepad (Windows), TextEdit (Mac), or a dedicated code editor like <a href=\"https:\/\/code.visualstudio.com\/\">Visual Studio Code<\/a>. Paste your plugin\u2019s code (which you\u2019ve previously generated using AI or downloaded from a trusted source) into a new file. Then, carefully save the file with a descriptive name ending in the <code>.php<\/code> extension\u2014for example, <code>simplecontactform.php<\/code>. Save this file directly in the folder (<code>simplecontactform<\/code>) you previously created.<\/p>\n\n\n\n<p>At this point, your folder structure should resemble this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>simplecontactform\/\n  \u2514\u2500\u2500 simplecontactform.php<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Accessing Your WordPress Server Files<\/strong><\/h3>\n\n\n\n<p>With your plugin now created and saved, the next step is uploading your custom plugin into your WordPress website\u2019s file structure. To do this, you&#8217;ll need access to your site&#8217;s files, commonly done via FTP (File Transfer Protocol). Popular FTP clients include FileZilla, Cyberduck, or you could use your hosting provider\u2019s built-in File Manager interface (usually accessible from your hosting dashboard, e.g., cPanel or similar control panels).<\/p>\n\n\n\n<p>Connect to your WordPress site&#8217;s filesystem using your FTP credentials (which you can get from your web hosting provider) or by logging directly into your hosting control panel.<\/p>\n\n\n\n<p><strong>Step 3: Uploading Your Plugin Files<\/strong><\/p>\n\n\n\n<p>Upon connecting, navigate carefully to your WordPress installation\u2019s core directory. Find and click into the <code>wp-content<\/code> folder, then continue into the <code>plugins<\/code> folder. Your path should look like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yoursite.com\/wp-content\/plugins\/<\/code><\/pre>\n\n\n\n<p>Now, it&#8217;s time to upload your new plugin folder. Drag and drop (or upload) your entire <code>simplecontactform<\/code> directory, including the <code>.php<\/code> file you previously saved, directly into the plugins directory. When you&#8217;re done, the structure on the server should look like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp-content\/plugins\/\n  \u2514\u2500\u2500 simplecontactform\/\n         \u2514\u2500\u2500 simplecontactform.php<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: Activating Your Plugin within WordPress<\/strong><\/h3>\n\n\n\n<p>With your plugin safely in place, activation is straightforward. Log into your WordPress Admin dashboard (usually accessed at <code>yoursite.com\/wp-admin<\/code>). Click &#8220;Plugins&#8221; on the left sidebar menu. In the plugin list displayed, you should now find your new plugin titled \u201cSimple Contact Form\u201d waiting to be activated.<\/p>\n\n\n\n<p>Click the &#8220;Activate&#8221; button listed directly under the plugin name. Upon activation, the plugin will automatically create any required database tables, preparing your site\u2019s database to securely store form submissions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5: Display the Form on Your Website<\/strong><\/h3>\n\n\n\n<p>To showcase your newly created Simple Contact Form on a webpage, go to the <strong>Pages<\/strong> section of your WordPress admin dashboard and choose &#8220;Add New.&#8221; Name the page something intuitive, such as &#8220;Contact Us.&#8221; Next, place the plugin\u2019s shortcode\u2014 <code>    <form method=\"post\" id=\"contact-form\">\n        <input type=\"hidden\" id=\"contact_nonce\" name=\"contact_nonce\" value=\"15c3921a67\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/digitalsalvage\/wp-json\/wp\/v2\/posts\/40888\" \/>        <label for=\"contact_name\">Name:<\/label>\n        <input type=\"text\" name=\"contact_name\" required>\n        \n        <label for=\"contact_email\">Email (optional):<\/label>\n        <input type=\"email\" name=\"contact_email\">\n        \n        <label for=\"contact_message\">Your Message (up to 500 words):<\/label>\n        <textarea name=\"contact_message\" id=\"contact_message\" rows=\"6\" required><\/textarea>\n        <p id=\"word-count\">Word Count: 0\/500<\/p>\n        <button type=\"submit\" name=\"contact_submit\" id=\"submit-button\" disabled>Submit<\/button>\n    <\/form>\n\n    <\/code> \u2014 into the page\u2019s content area. Shortcodes in WordPress are easy-to-use snippets that display plugin functionalities, making them accessible without coding.<\/p>\n\n\n\n<p>Publish your new page, and voil\u00e0! Visit it directly, and you&#8217;ll immediately see your nicely formatted contact form ready for users to submit messages.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Managing Contact Form Submissions (CSV Export &amp; Admin Interface)<\/h2>\n\n\n\n<p>One of the amazing features built into your AI-generated contact form plugin is an intuitive admin backend interface that requires zero additional setup. On your WordPress Admin dashboard, this contact form will have automatically generated an admin menu item called <strong>&#8220;Contact Submissions.&#8221;<\/strong><\/p>\n\n\n\n<p>Navigating there, you&#8217;ll see all submissions conveniently listed, with details such as Name, Email, Message, and the date\/time received. Need to manage or archive your submissions? We&#8217;ve added built-in CSV export functionality so you can quickly download and review your submissions offline using standard software like Excel or Google Sheets.<\/p>\n\n\n\n<p>Additionally, keeping your database tidy is simple. Checkboxes allow you to select entries you\u2019d like to remove, and a single click deletes selected submissions after confirmation. Easy, tidy, and efficient.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"201\" src=\"http:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/backend-wordpress-plugin-make-free-wordpress-contact-plugin-with-ai-1024x201.jpeg\" alt=\"This is our simple back-end.\" class=\"wp-image-40895\" srcset=\"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/backend-wordpress-plugin-make-free-wordpress-contact-plugin-with-ai-1024x201.jpeg 1024w, https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/backend-wordpress-plugin-make-free-wordpress-contact-plugin-with-ai-300x59.jpeg 300w, https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/backend-wordpress-plugin-make-free-wordpress-contact-plugin-with-ai-768x151.jpeg 768w, https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/backend-wordpress-plugin-make-free-wordpress-contact-plugin-with-ai-1536x302.jpeg 1536w, https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/03\/backend-wordpress-plugin-make-free-wordpress-contact-plugin-with-ai-2048x403.jpeg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">This is our simple back-end.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Sample Code<\/h2>\n\n\n\n<p>Here is our sample plugin code. It&#8217;s all in one file, and worked fine for us. Test your version locally first, and make sure you back up your site just in case! This is a very basic approach, and fits in one file. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/*\nPlugin Name: Simple Contact Form\nPlugin URI: http:\/\/artsincubator.ca\/digitalsalvage\/artificial-intelligence\/create-contact-wordpress-plugin-with-ai\/\nDescription: A simple plugin for users to submit contact requests with WordPress.\nVersion: 1.0\nAuthor: Jamie Bell and Tony Eetak\nAuthor URI: http:\/\/artsincubator.ca\/digitalsalvage\nLicense: GPL2\n*\/\n\nif (!defined('ABSPATH')) {\n    exit; \/\/ Exit if accessed directly\n}\n\nfunction contact_form_install() {\n    global $wpdb;\n    $table_name = $wpdb-&gt;prefix . 'simplecontactform_submissions';\n    $charset_collate = $wpdb-&gt;get_charset_collate();\n\n    $sql = \"CREATE TABLE $table_name (\n        id mediumint(9) NOT NULL AUTO_INCREMENT,\n        contact_name varchar(255) NOT NULL,\n        contact_email varchar(255),\n        contact_message text NOT NULL,\n        submitted_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,\n        PRIMARY KEY  (id)\n    ) $charset_collate;\";\n\n    require_once(ABSPATH . 'wp-admin\/includes\/upgrade.php');\n    dbDelta($sql);\n}\nregister_activation_hook(__FILE__, 'contact_form_install');\n\nfunction contact_form_shortcode() {\n    ob_start(); ?&gt;\n    &lt;form method=\"post\" id=\"contact-form\"&gt;\n        &lt;?php wp_nonce_field('contact_form_nonce', 'contact_nonce'); ?&gt;\n        &lt;label for=\"contact_name\"&gt;Name:&lt;\/label&gt;\n        &lt;input type=\"text\" name=\"contact_name\" required&gt;\n        \n        &lt;label for=\"contact_email\"&gt;Email (optional):&lt;\/label&gt;\n        &lt;input type=\"email\" name=\"contact_email\"&gt;\n        \n        &lt;label for=\"contact_message\"&gt;Your Message (up to 500 words):&lt;\/label&gt;\n        &lt;textarea name=\"contact_message\" id=\"contact_message\" rows=\"6\" required&gt;&lt;\/textarea&gt;\n        &lt;p id=\"word-count\"&gt;Word Count: 0\/500&lt;\/p&gt;\n        &lt;button type=\"submit\" name=\"contact_submit\" id=\"submit-button\" disabled&gt;Submit&lt;\/button&gt;\n    &lt;\/form&gt;\n\n    &lt;?php \n    if (isset($_GET&#091;'submitted'])) { \n        echo '&lt;script type=\"text\/javascript\"&gt;\n                alert(\"Thank you for contacting us!\");\n              &lt;\/script&gt;';\n    }\n    return ob_get_clean();\n}\nadd_shortcode('contact_submission_form', 'contact_form_shortcode');\n\nfunction contact_form_script() { ?&gt;\n    &lt;script type=\"text\/javascript\"&gt;\n        document.addEventListener('DOMContentLoaded', function() {\n            var messageField = document.getElementById(\"contact_message\");\n            var submitButton = document.getElementById(\"submit-button\");\n            var wordCountDisplay = document.getElementById(\"word-count\");\n\n            function countWords() {\n                const text = messageField.value;\n                const words = text.trim().split(\/\\s+\/);\n                let wordCount = words.filter(word =&gt; word.length &gt; 0).length;\n\n                if (wordCount &gt; 500) {\n                    messageField.value = words.slice(0, 500).join(\" \");\n                    wordCount = 500;\n                }\n\n                wordCountDisplay.textContent = \"Word Count: \" + wordCount + \"\/500\";\n\n                if (wordCount &gt; 0 &amp;&amp; wordCount &lt;= 500) {\n                    submitButton.disabled = false;\n                    wordCountDisplay.style.color = \"black\";\n                } else {\n                    submitButton.disabled = true;\n                    wordCountDisplay.style.color = \"red\";\n                }\n            }\n\n            messageField.addEventListener('input', countWords);\n        });\n    &lt;\/script&gt;\n&lt;?php }\nadd_action('wp_footer', 'contact_form_script');\n\nfunction handle_contact_form_submission() {\n    if (isset($_POST&#091;'contact_submit'])) {\n        if (!isset($_POST&#091;'contact_nonce']) || !wp_verify_nonce($_POST&#091;'contact_nonce'], 'contact_form_nonce')) {\n            die('Security check failed');\n        }\n\n        $user_ip = $_SERVER&#091;'REMOTE_ADDR'];\n        $last_submission = get_transient('contact_form_' . $user_ip);\n\n        if ($last_submission) {\n            wp_die('&lt;script type=\"text\/javascript\"&gt;\n                        alert(\"You can only submit once every 5 minutes.\");\n                        window.history.back();\n                    &lt;\/script&gt;');\n        }\n\n        global $wpdb;\n        $table_name = $wpdb-&gt;prefix . 'simplecontactform_submissions';\n\n        $name = sanitize_text_field($_POST&#091;'contact_name']);\n        $email = sanitize_email($_POST&#091;'contact_email']);\n        $message = sanitize_textarea_field($_POST&#091;'contact_message']);\n\n        $wpdb-&gt;insert(\n            $table_name,\n            &#091;'contact_name' =&gt; $name, 'contact_email' =&gt; $email, 'contact_message' =&gt; $message],\n            &#091;'%s', '%s', '%s']\n        );\n\n        set_transient('contact_form_' . $user_ip, true, 300);\n        \n        wp_redirect(add_query_arg('submitted', 'true', wp_get_referer()));\n        exit;\n    }\n}\nadd_action('init', 'handle_contact_form_submission');\n\nfunction contact_form_menu() {\n    add_menu_page(\n        'Contact Submissions',\n        'Contact Submissions',\n        'manage_options',\n        'contact-submissions',\n        'contact_form_admin_page',\n        'dashicons-admin-comments',\n        25\n    );\n}\nadd_action('admin_menu', 'contact_form_menu');\n\nfunction export_contact_form_submissions() {\n    if (isset($_GET&#091;'export_submissions'])) {\n        global $wpdb;\n        $table_name = $wpdb-&gt;prefix . 'simplecontactform_submissions';\n        $submissions = $wpdb-&gt;get_results(\"SELECT * FROM $table_name ORDER BY submitted_at DESC\", ARRAY_A);\n\n        header('Content-Type: text\/csv; charset=utf-8');\n        header('Content-Disposition: attachment; filename=contact_submissions.csv');\n        \n        $output = fopen('php:\/\/output', 'w');\n        fputcsv($output, &#091;'ID', 'Name', 'Email', 'Message', 'Submitted At']);\n        \n        foreach ($submissions as $submission) {\n            fputcsv($output, $submission);\n        }\n        fclose($output);\n        exit;\n    }\n}\nadd_action('admin_init', 'export_contact_form_submissions');\n\nfunction contact_form_admin_page() {\n    global $wpdb;\n    $table_name = $wpdb-&gt;prefix . 'simplecontactform_submissions';\n    \n    if (isset($_POST&#091;'delete_submission'])) {\n        $ids_to_delete = array_map('intval', $_POST&#091;'delete_ids'] ?? &#091;]);\n        if (!empty($ids_to_delete)) {\n            $ids_format = implode(',', array_fill(0, count($ids_to_delete), '%d'));\n            $wpdb-&gt;query($wpdb-&gt;prepare(\"DELETE FROM $table_name WHERE id IN ($ids_format)\", ...$ids_to_delete));\n\n            echo '&lt;script type=\"text\/javascript\"&gt;\n                    alert(\"Selected submissions deleted successfully.\");\n                    window.location.reload();\n                  &lt;\/script&gt;';\n            return;\n        }\n    }\n\n    $submissions = $wpdb-&gt;get_results(\"SELECT * FROM $table_name ORDER BY submitted_at DESC\");\n    \n    ?&gt;\n    &lt;div class=\"wrap\"&gt;\n        &lt;h1&gt;Contact Submissions&lt;\/h1&gt;\n        &lt;a href=\"?page=contact-submissions&amp;export_submissions=true\" class=\"button button-primary\"&gt;Export to CSV&lt;\/a&gt;\n        &lt;form method=\"post\" id=\"delete-submissions-form\"&gt;\n            &lt;table class=\"widefat fixed\" cellspacing=\"0\" style=\"margin-top: 15px;\"&gt;\n                &lt;thead&gt;\n                    &lt;tr&gt;\n                        &lt;th&gt;&lt;input type=\"checkbox\" id=\"select-all\"&gt;&lt;\/th&gt;\n                        &lt;th&gt;Name&lt;\/th&gt;\n                        &lt;th&gt;Email&lt;\/th&gt;\n                        &lt;th&gt;Message&lt;\/th&gt;\n                        &lt;th&gt;Date&lt;\/th&gt;\n                    &lt;\/tr&gt;\n                &lt;\/thead&gt;\n                &lt;tbody&gt;\n                    &lt;?php foreach ($submissions as $submission) : ?&gt;\n                        &lt;tr&gt;\n                            &lt;td&gt;&lt;input type=\"checkbox\" name=\"delete_ids&#091;]\" value=\"&lt;?php echo esc_attr($submission-&gt;id); ?&gt;\"&gt;&lt;\/td&gt;\n                            &lt;td&gt;&lt;?php echo esc_html($submission-&gt;contact_name); ?&gt;&lt;\/td&gt;\n                            &lt;td&gt;&lt;?php echo esc_html($submission-&gt;contact_email); ?&gt;&lt;\/td&gt;\n                            &lt;td&gt;&lt;?php echo esc_html($submission-&gt;contact_message); ?&gt;&lt;\/td&gt;\n                            &lt;td&gt;&lt;?php echo esc_html($submission-&gt;submitted_at); ?&gt;&lt;\/td&gt;\n                        &lt;\/tr&gt;\n                    &lt;?php endforeach; ?&gt;\n                &lt;\/tbody&gt;\n            &lt;\/table&gt;\n            &lt;button type=\"submit\" name=\"delete_submission\" class=\"button button-secondary\" onclick=\"return confirmDelete()\"&gt;Delete Selected&lt;\/button&gt;\n        &lt;\/form&gt;\n    &lt;\/div&gt;\n    &lt;script type=\"text\/javascript\"&gt;\n        document.getElementById('select-all').addEventListener('click', function(event) {\n            var checked = event.target.checked;\n            var checkboxes = document.querySelectorAll('input&#091;type=checkbox]&#091;name=\"delete_ids&#091;]\"]');\n            checkboxes.forEach(function(checkbox) {\n                checkbox.checked = checked;\n            });\n        });\n\n        function confirmDelete() {\n            return confirm('Are you sure you want to delete the selected submissions?');\n        }\n    &lt;\/script&gt;\n    &lt;?php\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Unlocking Potential with AI-Generated Code<\/h2>\n\n\n\n<p>Gone are the days of paying for expensive software just to enable basic functionalities like a contact form. With vibe coding and AI&#8217;s power, creating efficient plugins is now accessible to everyone. This simple contact form plugin is an example of how innovation can provide practical, economical solutions to everyday digital challenges.<\/p>\n\n\n\n<p>Now is the time to dive into the world of creating your own AI and WordPress plugins. For us, the <a href=\"https:\/\/openai.smapply.org\/prog\/openai_researcher_access_program\/\">OpenAI Researcher Access Program<\/a> has made it possible for to explore, experiment, and create our own plugins without breaking the bank. And we&#8217;re really grateful for their support this past year, because it&#8217;s been a totally wild adventure.<\/p>\n\n\n\n<p>This is your opportunity to unleash creativity, enhance your website, and most importantly, save money.<\/p>\n\n\n\n<p>So go on, embrace the thrill of innovation as you design solutions tailored precisely to your needs. Blending AI with the spirit of vibe coding offers a playground of possibilities where you can have fun crafting unique, efficient plugins. Say goodbye to costly subscriptions and hello to empowerment. Join this exciting journey and transform the way you approach your digital projects! Good luck! <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Create Free WordPress Plug-Ins with AI Tools and Vibe Coding These days having a contact form is essential for any website. Yet, many struggle with costly subscriptions or complicated setups when trying to implement one. That&#8217;s all changed, thanks to the emergence of AI tools and this cool approach everyone&#8217;s using called vibe coding. With [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":39343,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[208],"tags":[216,21,13,22],"class_list":["post-40888","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","tag-2024-5782","tag-manitoba","tag-sdg4","tag-winnipeg","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create a Simple Wordpress Contact Form Plugin With AI and Vibe Coding. For Free! - DIGITAL SALVAGE<\/title>\n<meta name=\"description\" content=\"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a Simple Contact Form Wordpress Plugin Using AI and Vibe Coding\" \/>\n<meta property=\"og:description\" content=\"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/\" \/>\n<meta property=\"og:site_name\" content=\"DIGITAL SALVAGE\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-31T04:48:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-31T06:09:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/02\/ai-prompting-tools.png\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"514\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jamie Bell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Create a Simple Contact Form Wordpress Plugin Using AI and Vibe Coding\" \/>\n<meta name=\"twitter:description\" content=\"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/02\/ai-prompting-tools.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jamie Bell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/\"},\"author\":{\"name\":\"Jamie Bell\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#\\\/schema\\\/person\\\/1cf81d75bfa81d1104099a6cdf227688\"},\"headline\":\"Create a Simple WordPress Contact Form Plugin With AI and Vibe Coding. For Free!\",\"datePublished\":\"2025-03-31T04:48:45+00:00\",\"dateModified\":\"2025-03-31T06:09:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/\"},\"wordCount\":1261,\"publisher\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/ai-prompting-tools.png\",\"keywords\":[\"2024-5782\",\"Manitoba\",\"SDG 4\",\"Winnipeg\"],\"articleSection\":[\"Artificial Intelligence (AI)\"],\"inLanguage\":\"en\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/\",\"url\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/\",\"name\":\"Create a Simple Wordpress Contact Form Plugin With AI and Vibe Coding. For Free! - DIGITAL SALVAGE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/ai-prompting-tools.png\",\"datePublished\":\"2025-03-31T04:48:45+00:00\",\"dateModified\":\"2025-03-31T06:09:35+00:00\",\"description\":\"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/#primaryimage\",\"url\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/ai-prompting-tools.png\",\"contentUrl\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/ai-prompting-tools.png\",\"width\":900,\"height\":514,\"caption\":\"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/ai\\\/create-contact-wordpress-plugin-with-ai\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a Simple WordPress Contact Form Plugin With AI and Vibe Coding. For Free!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#website\",\"url\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/\",\"name\":\"Digital Salvage\",\"description\":\"Winnipeg, Manitoba\",\"publisher\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#organization\"},\"alternateName\":\"Digital Salvage Art Program\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#organization\",\"name\":\"Digital Salvage\",\"alternateName\":\"Winnipeg Arts Program\",\"url\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/DIGITAL-SALVAGE-2025-2.webp\",\"contentUrl\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/DIGITAL-SALVAGE-2025-2.webp\",\"width\":800,\"height\":800,\"caption\":\"Digital Salvage\"},\"image\":{\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/#\\\/schema\\\/person\\\/1cf81d75bfa81d1104099a6cdf227688\",\"name\":\"Jamie Bell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/cropped-Jamie-Bell-Winnipeg-1-150x150.jpg\",\"url\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/cropped-Jamie-Bell-Winnipeg-1-150x150.jpg\",\"contentUrl\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/cropped-Jamie-Bell-Winnipeg-1-150x150.jpg\",\"caption\":\"Jamie Bell\"},\"description\":\"Jamie Bell is a Winnipeg, Manitoba-based interdisciplinary artist and strategist whose work bridges media arts, community engagement, and public affairs. With a background in film and television, he brings a collaborative, story-driven approach to projects spanning northern and urban communities. His work has been supported by the Canada Council for the Arts, the Manitoba Arts Council, and the OpenAI Researcher Access Program, with a focus on participatory media, cultural production, and strategic communications.\",\"sameAs\":[\"http:\\\/\\\/artsincubator.ca\\\/digitalsalvage\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/jamie-b-0247681\\\/\"],\"url\":\"https:\\\/\\\/artsincubator.ca\\\/digitalsalvage\\\/author\\\/jamieb\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create a Simple Wordpress Contact Form Plugin With AI and Vibe Coding. For Free! - DIGITAL SALVAGE","description":"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/","og_locale":"en_US","og_type":"article","og_title":"Create a Simple Contact Form Wordpress Plugin Using AI and Vibe Coding","og_description":"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!","og_url":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/","og_site_name":"DIGITAL SALVAGE","article_published_time":"2025-03-31T04:48:45+00:00","article_modified_time":"2025-03-31T06:09:35+00:00","og_image":[{"width":900,"height":514,"url":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/02\/ai-prompting-tools.png","type":"image\/png"}],"author":"Jamie Bell","twitter_card":"summary_large_image","twitter_title":"Create a Simple Contact Form Wordpress Plugin Using AI and Vibe Coding","twitter_description":"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!","twitter_image":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/02\/ai-prompting-tools.png","twitter_misc":{"Written by":"Jamie Bell","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/#article","isPartOf":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/"},"author":{"name":"Jamie Bell","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#\/schema\/person\/1cf81d75bfa81d1104099a6cdf227688"},"headline":"Create a Simple WordPress Contact Form Plugin With AI and Vibe Coding. For Free!","datePublished":"2025-03-31T04:48:45+00:00","dateModified":"2025-03-31T06:09:35+00:00","mainEntityOfPage":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/"},"wordCount":1261,"publisher":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#organization"},"image":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/02\/ai-prompting-tools.png","keywords":["2024-5782","Manitoba","SDG 4","Winnipeg"],"articleSection":["Artificial Intelligence (AI)"],"inLanguage":"en"},{"@type":"WebPage","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/","url":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/","name":"Create a Simple Wordpress Contact Form Plugin With AI and Vibe Coding. For Free! - DIGITAL SALVAGE","isPartOf":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#website"},"primaryImageOfPage":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/#primaryimage"},"image":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/#primaryimage"},"thumbnailUrl":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/02\/ai-prompting-tools.png","datePublished":"2025-03-31T04:48:45+00:00","dateModified":"2025-03-31T06:09:35+00:00","description":"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!","breadcrumb":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/#primaryimage","url":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/02\/ai-prompting-tools.png","contentUrl":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/02\/ai-prompting-tools.png","width":900,"height":514,"caption":"Say goodbye to expensive WordPress contact form plugins. Embrace AI tools and vibe coding to create dynamic, simple contact forms effortlessly and for free!"},{"@type":"BreadcrumbList","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/ai\/create-contact-wordpress-plugin-with-ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/artsincubator.ca\/digitalsalvage\/"},{"@type":"ListItem","position":2,"name":"Create a Simple WordPress Contact Form Plugin With AI and Vibe Coding. For Free!"}]},{"@type":"WebSite","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#website","url":"https:\/\/artsincubator.ca\/digitalsalvage\/","name":"Digital Salvage","description":"Winnipeg, Manitoba","publisher":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#organization"},"alternateName":"Digital Salvage Art Program","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/artsincubator.ca\/digitalsalvage\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#organization","name":"Digital Salvage","alternateName":"Winnipeg Arts Program","url":"https:\/\/artsincubator.ca\/digitalsalvage\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#\/schema\/logo\/image\/","url":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/04\/DIGITAL-SALVAGE-2025-2.webp","contentUrl":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2025\/04\/DIGITAL-SALVAGE-2025-2.webp","width":800,"height":800,"caption":"Digital Salvage"},"image":{"@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/#\/schema\/person\/1cf81d75bfa81d1104099a6cdf227688","name":"Jamie Bell","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2024\/12\/cropped-Jamie-Bell-Winnipeg-1-150x150.jpg","url":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2024\/12\/cropped-Jamie-Bell-Winnipeg-1-150x150.jpg","contentUrl":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-content\/uploads\/2024\/12\/cropped-Jamie-Bell-Winnipeg-1-150x150.jpg","caption":"Jamie Bell"},"description":"Jamie Bell is a Winnipeg, Manitoba-based interdisciplinary artist and strategist whose work bridges media arts, community engagement, and public affairs. With a background in film and television, he brings a collaborative, story-driven approach to projects spanning northern and urban communities. His work has been supported by the Canada Council for the Arts, the Manitoba Arts Council, and the OpenAI Researcher Access Program, with a focus on participatory media, cultural production, and strategic communications.","sameAs":["http:\/\/artsincubator.ca\/digitalsalvage","https:\/\/www.linkedin.com\/in\/jamie-b-0247681\/"],"url":"https:\/\/artsincubator.ca\/digitalsalvage\/author\/jamieb\/"}]}},"_links":{"self":[{"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/posts\/40888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/comments?post=40888"}],"version-history":[{"count":0,"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/posts\/40888\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/media\/39343"}],"wp:attachment":[{"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/media?parent=40888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/categories?post=40888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artsincubator.ca\/digitalsalvage\/wp-json\/wp\/v2\/tags?post=40888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}