{"id":2435,"date":"2014-09-15T12:05:42","date_gmt":"2014-09-15T19:05:42","guid":{"rendered":"http:\/\/webtrainingwheels.com\/?p=2435"},"modified":"2021-01-12T09:00:16","modified_gmt":"2021-01-12T17:00:16","slug":"favorite-wordpress-plugins","status":"publish","type":"post","link":"https:\/\/webtrainingwheels.com\/favorite-wordpress-plugins\/","title":{"rendered":"A Few of My Favorite WordPress Plugins"},"content":{"rendered":"<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-2441\" src=\"https:\/\/webtrainingwheels.com\/wp-content\/uploads\/2014\/09\/recommended-plugins.png\" alt=\"Recommended WordPress Plugins\" width=\"500\" height=\"200\" srcset=\"https:\/\/webtrainingwheels.com\/wp-content\/uploads\/2014\/09\/recommended-plugins.png 500w, https:\/\/webtrainingwheels.com\/wp-content\/uploads\/2014\/09\/recommended-plugins-100x40.png 100w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>I gave a small talk on plugins at WordCamp LA recently and was inspired to start compiling a list of my most commonly recommended ones. I&#8217;ve also started collecting them as Favorites at my <a href=\"http:\/\/profiles.wordpress.org\/webtrainingwheels\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress.org profile<\/a> but there&#8217;s no way to organize them there according to topic or purpose. The list is&nbsp;by no means exhaustive so if you have any requests for recommended plugins of a certain kind, leave a comment and I&#8217;ll see about incorporating them into a future edition.<\/p>\n<p><a class=\"popmake-2506 fasc-button fasc-size-large fasc-type-flat fasc-rounded-medium fasc-ico-before dashicons-download\" style=\"background-color: #35849a; color: #ffffff;\">Get the PDF Download<\/a><\/p>\n<p>Here&#8217;s what&#8217;s on there as of now:<\/p>\n<h3><strong>CONTACT FORMS<\/strong><\/h3>\n<p><strong>Formidable (free and premium)<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/formidable\/\">http:\/\/wordpress.org\/plugins\/formidable\/<br \/>\n<\/a>Formidable has both a free and paid version. The free version is one of the better free form builders available. For me, the workflow and interface is easier to work with than other free plugins such as Ninja Forms or Contact Form 7.<\/p>\n<p><strong>Gravity Forms<br \/>\n<\/strong><a href=\"https:\/\/webtrainingwheels.com\/recommends\/gravity-forms\/\">https:\/\/webtrainingwheels.com\/recommends\/gravity-forms\/<\/a> (aff. link)<br \/>\nGravity Form is strictly a premium plugin \u2013 there is no free version. I have invested in the Developer license and use it on most sites because it\u2019s so powerful. This is more than just a contact form plugin &#8211; it gives you advanced data collection and processing capabilities. There are add-ons to integrate with other services such as PayPal, MailChimp and many others. Developers will find it very customizable via the many hooks and filters provided.<\/p>\n<p><!--more--><\/p>\n<h3><strong>SIDEBAR ACTION<\/strong><\/h3>\n<p><strong>Display Widgets<br \/>\n<\/strong><a href=\"http:\/\/wordpress.org\/plugins\/display-widgets\/\">http:\/\/wordpress.org\/plugins\/display-widgets\/<br \/>\n<\/a>Control which widgets show up on which pages\/sections of your site.<\/p>\n<p><strong>Black Studio Tiny MCE Widget<br \/>\n<\/strong><a href=\"http:\/\/wordpress.org\/plugins\/black-studio-tinymce-widget\/\">http:\/\/wordpress.org\/plugins\/black-studio-tinymce-widget\/<br \/>\n<\/a>Put the power of the WordPress Visual Editor in your widgets.<\/p>\n<p><strong>Flexible Posts Widget<br \/>\n<\/strong><a href=\"http:\/\/wordpress.org\/plugins\/flexible-posts-widget\/\">http:\/\/wordpress.org\/plugins\/flexible-posts-widget\/<br \/>\n<\/a>Easily feature any selection of posts in a widget, based on taxonomy, category or custom post type.<\/p>\n<h3><strong>BACK UPS<\/strong><\/h3>\n<p><strong>Back WPUp<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/backwpup\/\">http:\/\/wordpress.org\/plugins\/backwpup\/<br \/>\n<\/a>Create backup schedules for both your database and files and back them up to Dropbox, Amazon S3 and other off-site locations. There\u2019s also a Premium version but I have always found the free version to be adequate.<\/p>\n<p><strong>Updraft Plus<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/updraftplus\/\">http:\/\/wordpress.org\/plugins\/updraftplus\/<br \/>\n<\/a>Similar to BackWPUp there\u2019s a free version and a premium version with additional features including Restore. However the free version works well in most cases.<\/p>\n<p><strong>WordPress Backup To Dropbox<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/wordpress-backup-to-dropbox\/\">http:\/\/wordpress.org\/plugins\/wordpress-backup-to-dropbox\/<br \/>\n<\/a>Just as the name suggests, this plugin allows you to back your site up to Dropbox. Whereas most backup plugins do a full backup every time, this one does an initial backup of the entire site but after that it then backs up only files that have changed. So it is more space efficient than other plugins.<\/p>\n<p><strong>VaultPress<\/strong> (paid service)<br \/>\n<a href=\"https:\/\/vaultpress.com\/\">https:\/\/vaultpress.com\/<br \/>\n<\/a>For larger sites or more \u2018mission-critical\u2019 sites, I like to recommend the paid service that VaultPress (an Automattic company) provides. Starting a $5\/month VaultPress is a reliable backup service and has the benefit of support and automated restores.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>COPYING\/MOVING SITES<\/strong><\/h3>\n<p><strong>Duplicator<br \/>\n<\/strong><a href=\"http:\/\/wordpress.org\/plugins\/duplicator\/\">http:\/\/wordpress.org\/plugins\/duplicator\/<br \/>\n<\/a>Duplicator is a great plugin for when you need to create a snapshot of a site for download, or when you need to move a site from one server or location to another. When moving sites to a different domain (such as from a live server to a local server) it will also go through the database and update all references to the old url and replace them with the new url.<\/p>\n<p><strong>WP Clone<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/wp-clone-by-wp-academy\/\">http:\/\/wordpress.org\/plugins\/wp-clone-by-wp-academy\/<br \/>\n<\/a>WP Clone is similar to Duplicator but whereas when deploying a site with Duplicator you start with an empty directory on your server, with WP Clone you start with a basic WordPress installation and install this plugin within it. I like both plugins. When it works, I think WP Clone is easier for the average user to get to grips with. I like to have both plugins in my toolkit since there are circumstances where if one doesn\u2019t work, the other will.<\/p>\n<h3><strong>INCREASE OPT-INS<\/strong><\/h3>\n<p><strong>Magic Action Box<\/strong> (free and premium)<br \/>\nFree version:&nbsp;<a href=\"http:\/\/wordpress.org\/plugins\/magic-action-box\/\">http:\/\/wordpress.org\/plugins\/magic-action-box\/<\/a><br \/>\nPro version:&nbsp;<a class=\"thirstylink\" title=\"Magic Action Box Pro\" href=\"https:\/\/webtrainingwheels.com\/recommends\/magic-action-box-pro\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/webtrainingwheels.com\/recommends\/magic-action-box-pro\/<\/a> (aff. link)<\/p>\n<p>Place calls to action and email opt-ins in your sidebar and at the top or bottom of posts\/pages<\/p>\n<p><strong>MailChimp for WordPress<\/strong> (free and premium)<\/p>\n<p>Free version:&nbsp;<a href=\"https:\/\/wordpress.org\/plugins\/mailchimp-for-wp\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wordpress.org\/plugins\/mailchimp-for-wp\/<\/a><br \/>\nPro version:&nbsp;<a href=\"https:\/\/mc4wp.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/mc4wp.com\/<\/a><\/p>\n<p>One of the best plugins for integrating your site with MailChimp. It allows you to create opt-in forms, as well as offering opt-in integrations with plugins&nbsp;like&nbsp;WooCommerce, and allowing people to subscribe when commenting. The free version is adequate for bloggers and beginners,&nbsp;but the Pro version has some great features for power users.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>RELATED POSTS<\/strong><\/h3>\n<p><strong>Zemanta<\/strong><br \/>\n<a href=\"https:\/\/wordpress.org\/plugins\/related-posts\/\">https:\/\/wordpress.org\/plugins\/related-posts\/<\/a><\/p>\n<p>This plugin&nbsp;allows you to feature&nbsp;related content at the bottom of your blog posts in order to keep users on your site. It&#8217;s&nbsp;server-friendly and will not slow down your site. You can choose from&nbsp;a selection of layout styles and while it can generate the related posts automatically for you, it&nbsp;does offer the ability to edit the related items.<br \/>\n<strong><br \/>\n<\/strong><\/p>\n<h3><strong>SOCIAL SHARING<\/strong><\/h3>\n<p><strong>Simple Share Buttons Adder<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/simple-share-buttons-adder\/\">http:\/\/wordpress.org\/plugins\/simple-share-buttons-adder\/<br \/>\n<\/a>A lightweight and elegant way to add social sharing icons to your posts and pages.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>IMAGE CONTROL<\/strong><\/h3>\n<p><strong>EWWW Image Optimizer<br \/>\n<\/strong><a href=\"http:\/\/wordpress.org\/plugins\/ewww-image-optimizer\/\">http:\/\/wordpress.org\/plugins\/ewww-image-optimizer\/<br \/>\n<\/a>Compress images in your media library to reduce the file size.<\/p>\n<p><strong>Imagify<\/strong><br \/>\n<a href=\"https:\/\/wordpress.org\/plugins\/imagify\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wordpress.org\/plugins\/imagify\/<\/a><br \/>\nFull disclosure &#8211; I work with the parent company WP Media. But this plugin can basically replace EWWW and Imsanity &#8211; allowing you to resize <strong>and<\/strong> compress images (with a choice of compression levels) on upload.<\/p>\n<p><strong>Imsanity<br \/>\n<\/strong><a href=\"http:\/\/wordpress.org\/plugins\/imsanity\/\">http:\/\/wordpress.org\/plugins\/imsanity\/<br \/>\n<\/a>If you or your clients have a tendency to want to upload giant images to your media library, this plugin will help keep things in check.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>IMAGE SLIDERS<\/strong><\/h3>\n<p><strong>Meta Slider<br \/>\n<\/strong><a href=\"http:\/\/wordpress.org\/plugins\/ml-slider\/\">http:\/\/wordpress.org\/plugins\/ml-slider\/<br \/>\n<\/a>This is my favorite free image slider. It\u2019s easy to use, has just enough options to make it flexible without being overwhelming, and generally speaking, it just works!<\/p>\n<p><strong>Soliloquy (Premium)<br \/>\n<\/strong><a href=\"https:\/\/webtrainingwheels.com\/recommends\/soliloquy\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/www.soliloquywp.com<\/a> (aff. link)<br \/>\nThere is a free version of Soliloquy but I think the free version of Meta Slider is better. However the paid version of Soliloquy is very powerful and customizable.<\/p>\n<h3><strong>LIGHTBOXES<\/strong><\/h3>\n<p><strong>Foo Image Lightbox<br \/>\n<\/strong>Free version:&nbsp;<a href=\"http:\/\/wordpress.org\/plugins\/foobox-image-lightbox\/\">http:\/\/wordpress.org\/plugins\/foobox-image-lightbox\/<\/a><br \/>\nPremium version: <a class=\"thirstylink\" title=\"Foobox\" href=\"https:\/\/webtrainingwheels.com\/recommends\/foobox\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/webtrainingwheels.com\/recommends\/foobox\/<\/a><\/p>\n<p>Lightboxes are a great way to showcase images on your WordPress site. Foo Image Lightbox works well right out of the box and is responsive. They also have a Premium version with additional features.<\/p>\n<h3><strong>VIDEO<\/strong><\/h3>\n<p><strong>Video Thumbnails<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/video-thumbnails\/\">http:\/\/wordpress.org\/plugins\/video-thumbnails\/<br \/>\n<\/a>A nifty plugin that will generated a featured image from your embedded videos, to save you having to grab a screenshot and create your own thumbnail image.<\/p>\n<h3><strong>SECURITY<\/strong><\/h3>\n<p><strong>WordFence<br \/>\n<\/strong><a href=\"https:\/\/wordpress.org\/plugins\/wordfence\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wordpress.org\/plugins\/wordfence\/<\/a><strong><br \/>\n<\/strong><\/p>\n<p><strong>Sucuri<br \/>\n<\/strong><a href=\"https:\/\/wordpress.org\/plugins\/sucuri-scanner\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wordpress.org\/plugins\/sucuri-scanner\/<\/a><strong><br \/>\n<\/strong><\/p>\n<p>There is some overlap in the functionality provided by these plugins, so you should make sure not to duplicate options if you use both on your site, but I like various features of each of them for hardening a WordPress installation, file monitoring features, brute force protection etc.<\/p>\n<h3><strong>PERFORMANCE OPTIMIZATION<\/strong><\/h3>\n<p><strong>P3 Plugin Profiler<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/p3-profiler\/\">http:\/\/wordpress.org\/plugins\/p3-profiler\/<br \/>\n<\/a>A&nbsp;troubleshooting tool which will show you which plugins are having the biggest impact on the load time of your site.<\/p>\n<p><strong>Query Monitor<\/strong><br \/>\n<a href=\"https:\/\/wordpress.org\/plugins\/query-monitor\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wordpress.org\/plugins\/query-monitor\/<\/a><br \/>\nA more advanced troubleshooting tool to monitor the efficiency of code on your site. A must-have for developers.<\/p>\n<p><strong>WP Rocket &#8211; Premium<\/strong><br \/>\n<a href=\"https:\/\/wp-rocket.me\">https:\/\/wp-rocket.me<br \/>\n<\/a>Full disclosure &#8211; I&nbsp;provide customer support for this plugin! Typically benchmarked as the fastest caching plugin, it has the easiest set up of all of them (install and activate!), is actively developed and has awesome support :)<\/p>\n<p><strong>WP Fastest&nbsp;Cache<\/strong><br \/>\n<a href=\"https:\/\/wordpress.org\/plugins\/wp-fastest-cache\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wordpress.org\/plugins\/wp-fastest-cache\/<br \/>\n<\/a>A free caching plugin that&#8217;s a bit easier to use than Super Cache or W3 Total Cache.<\/p>\n<p><strong>WP Optimize<br \/>\n<\/strong><a href=\"https:\/\/wordpress.org\/plugins\/wp-optimize\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/wordpress.org\/plugins\/wp-optimize\/<\/a><br \/>\nA great tool to clean up your database and help your site run more efficiently.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>FUN FOR DEVELOPERS<\/strong><\/h3>\n<p><strong>Go Live URLS<br \/>\n<\/strong><a href=\"http:\/\/wordpress.org\/plugins\/go-live-update-urls\/\">http:\/\/wordpress.org\/plugins\/go-live-update-urls\/<br \/>\n<\/a>Awesome plugin for when you move a site from one url to another. It does one simple thing &#8211; goes through your site and updates all urls, including those in sidebar widgets.<\/p>\n<p><strong>What The File<\/strong><br \/>\n<a href=\"http:\/\/wordpress.org\/plugins\/what-the-file\/\">http:\/\/wordpress.org\/plugins\/what-the-file\/<br \/>\n<\/a>Find out what template file is being used on a particular page.<\/p>\n<p><a class=\"popmake-2506 fasc-button fasc-size-large fasc-type-flat fasc-rounded-medium fasc-ico-before dashicons-download\" style=\"background-color: #35849a; color: #ffffff;\">Get the PDF Download<\/a><\/p><div id=\"webtr-1887922950\" class=\"webtr-content\"><script>\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n<\/script>\n\n                <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper gform-theme--no-framework' data-form-theme='legacy' data-form-index='0' id='gform_wrapper_32' >\n                        <div class='gform_heading'>\n                            <h3 class=\"gform_title\">Weekly WordPress Tips To Your Inbox<\/h3>\n                        <\/div><form method='post' enctype='multipart\/form-data'  id='gform_32'  action='\/wp-json\/wp\/v2\/posts\/2435' data-formid='32' novalidate> \r\n <input type='hidden' class='gforms-pum' value='{\"closepopup\":false,\"closedelay\":0,\"openpopup\":false,\"openpopup_id\":0}' \/>\n                        <div class='gform-body gform_body'><ul id='gform_fields_32' class='gform_fields top_label form_sublabel_below description_below validation_below'><li id=\"field_32_3\" class=\"gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_32_3'>Name<\/label><div class='ginput_container'><input name='input_3' id='input_32_3' type='text' value='' autocomplete='new-password'\/><\/div><div class='gfield_description' id='gfield_description_32_3'>This field is for validation purposes and should be left unchanged.<\/div><\/li><li id=\"field_32_1\" class=\"gfield gfield--type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label screen-reader-text' for='input_32_1'>Enter Your Email, It&#039;s Free!<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_container ginput_container_email'>\n                            <input name='input_1' id='input_32_1' type='email' value='' class='large'   placeholder='Enter Your Email, It&#039;s Free!' aria-required=\"true\" aria-invalid=\"false\"  \/>\n                        <\/div><\/li><li id=\"field_32_2\" class=\"gfield gfield--type-hidden gform_hidden field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><div class='ginput_container ginput_container_text'><input name='input_2' id='input_32_2' type='hidden' class='gform_hidden'  aria-invalid=\"false\" value='https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/posts\/2435' \/><\/div><\/li><\/ul><\/div>\n        <div class='gform-footer gform_footer top_label'> <!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><div class=\"gf-turnstile-container\"> <div id=\"cf-turnstile-gf-32\" class=\"cf-turnstile\" data-callback=\"turnstileGravityCallback\" data-sitekey=\"0x4AAAAAAA7A0N4QhHj7cf1O\" data-theme=\"light\" data-language=\"auto\" data-size=\"normal\" data-retry=\"auto\" data-retry-interval=\"1000\" data-refresh-expired=\"auto\" data-action=\"gravity-form-32\" data-appearance=\"always\"><\/div> <style>.gform_button { pointer-events: none; opacity: 0.5; }<\/style> <script>document.addEventListener(\"DOMContentLoaded\", function() { setTimeout(function(){ var e=document.getElementById(\"cf-turnstile-gf-32\"); e&&!e.innerHTML.trim()&&(turnstile.remove(\"#cf-turnstile-gf-32\"), turnstile.render(\"#cf-turnstile-gf-32\", {sitekey:\"0x4AAAAAAA7A0N4QhHj7cf1O\"})); }, 100); });<\/script> <br class=\"cf-turnstile-br cf-turnstile-br-gf-32\"> <style>#cf-turnstile-gf-32 { margin-left: -15px; }<\/style> <\/div> <style> .gf-turnstile-container { width: 100%; } .gform_footer.top_label { display: flex; flex-wrap: wrap; } <\/style> <script>document.addEventListener(\"DOMContentLoaded\", function() {document.addEventListener('gform\/post_render', function handlePostRender(event) {if (event.detail.formId !== 32) {return;}gform.utils.addAsyncFilter('gform\/submission\/pre_submission', async function handlePreSubmission(data) {document.addEventListener('gform\/post_render', function rerenderTurnstile(event) {if (event.detail.formId !== 32) {return;}const turnstileElement = document.getElementById('cf-turnstile-gf-32');if (turnstileElement) {turnstile.remove('#cf-turnstile-gf-32');turnstile.render('#cf-turnstile-gf-32');}document.removeEventListener('gform\/post_render', rerenderTurnstile);});gform.utils.removeFilter('gform\/submission\/pre_submission', handlePreSubmission);return data;});document.removeEventListener('gform\/post_render', handlePostRender);});});<\/script><input type=\"submit\" id=\"gform_submit_button_32\" class=\"gform_button button\" onclick=\"__gaTracker('send', 'event', { eventCategory: 'Forms', eventAction: 'Subscribe', eventLabel: 'PostFooter'});gform.submission.handleButtonClick(this);\" data-submission-type=\"submit\" value=\"Sign Up\"><\/body><\/html>\n \n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_32' value='postback' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_32' id='gform_theme_32' value='legacy' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_32' id='gform_style_settings_32' value='[]' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_32' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='32' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='o7OSxSpHnzcODyUGI4Sh0rblHrCDGiKqx36Ngb7\/DXeznQpmMoR0zy6HHSgqrPWFxQ5xxEaCq84bwm8\/iAUam0Wdr6QtaPY1MRTTcpkqYrZooFo=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_32' value='WyJbXSIsIjNhZjRhZTc2ODU5NzRiOTg2YjVjODkwMzk3M2ZhNTE5Il0=' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_32' id='gform_target_page_number_32' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_32' id='gform_source_page_number_32' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div><script>\ngform.initializeOnLoaded( function() {gformInitSpinner( 32, 'https:\/\/webtrainingwheels.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery('#gform_ajax_frame_32').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_32');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_32').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_32').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_32').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_32').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/  }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_32').val();gformInitSpinner( 32, 'https:\/\/webtrainingwheels.com\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [32, current_page]);window['gf_submitting_32'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_32').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [32]);window['gf_submitting_32'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_32').text());}else{jQuery('#gform_32').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"32\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_32\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_32\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_32\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 32, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} );\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I gave a small talk on plugins at WordCamp LA recently and was inspired to start compiling a list of my most commonly recommended ones. I&#8217;ve also started collecting them as Favorites at my WordPress.org profile but there&#8217;s no way to organize them there according to topic or purpose. The list is&nbsp;by no means exhaustive &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"A Few of My Favorite WordPress Plugins\" class=\"read-more button\" href=\"https:\/\/webtrainingwheels.com\/favorite-wordpress-plugins\/#more-2435\" aria-label=\"Read more about A Few of My Favorite WordPress Plugins\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":2441,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[285],"tags":[],"audience":[],"class_list":["post-2435","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wp-plugins"],"aioseo_notices":[],"modified_by":"Lucy","_links":{"self":[{"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/posts\/2435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/comments?post=2435"}],"version-history":[{"count":0,"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/posts\/2435\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/media\/2441"}],"wp:attachment":[{"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/media?parent=2435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/categories?post=2435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/tags?post=2435"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/webtrainingwheels.com\/wp-json\/wp\/v2\/audience?post=2435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}