We hope that you enjoy reading this much anticipated post from Gravitate’s PHP Expert in Residence, Jeremy Wilson.
Here’s a mostly unordered list of my favorite plugins that help me out when developing WordPress themes/websites. I’ve been building custom themes and websites in WordPress for several years now, and I’ve grown not to trust plugins in general. I mean, who hasn’t had their heart broken by WP-E-Commerce or had their week ruined by some sloppy SEO Optimizer plugins? Don’t even get me started on those evil 3rd party themes.
Whether you’re a wizened old pro guru-ninja-rockstar like myself, or just breaking into WordPress development, these plugins should ease and quicken your development. Not to mention these are hand-picked as to not be ad-riddled, scam-filled, gaping-security-holed piles of copypasta.
Advanced Custom Fields
Out of the box, this plugin will let you set up custom fields on posts/pages/custom post types. It comes with about 13 types: text (standard text input), textarea, wysiwyg editor, image upload, file upload, checkboxes, relationships (to other posts) and more.
Behind the scenes, you can pull the data using functions that blend into WordPress seamlessly: get_field(), the_field(), etc. The data is saved in the postmeta table, allowing you to perform any sort of SQL wizardry on it you might need. When creating a custom field set, you can even decide which of the default wordpress fields show up, like, the content, author, slug, page attributes, etc. To top it off, you can decide where the fields show up using simple yet powerful rules, ex.) only on posts that are categorized “Web 2.0,” or only on certain child pages.
There’s even more amazing extensions for ACF that you can pay for: repeating fields, flexible fields (let the user choose which type of field they want), an options page extension that lets you add custom option pages with your own custom fields to the WP dashboard, and more. There’s too many features and use cases for me to list here, just go visit the website already.
There’s no other option for forms, in my opinion. Gravity Forms may cost a bit of money, but it gives you an amazingly powerful form building engine with more features, hooks, and functions than you can shake a Harlem at. If you’re still using those other form plugins that desperately wants to be Gravity Forms, you’re doing yourself and your clients a disservice! If you buy a developer license, you can use this plugin wherever you want!
Bulk Page Creator
There’s not much more to say about this plugin besides the title. It’s a very useful uni-tasker, though. You can create a huge hierarchy of pages with dummy content in mere moments. There are other plugins out there that emulate this functionality and extend it by letting you upload a CSV, populate post meta and create custom post types, but they’re all so cluttered and ugly. It’s pretty simple to hack this plugin to make it create a custom post type instead of a page.
Another plugin that’s suited for one task, and one task alone: regenerating images. Not sure why it’s called regenerate THUMBNAILS when it works on any custom image size. But with a single click, this plugin will process every uploaded image and generate all the appropriate image sizes as defined by your theme. Not recommended on a site with more than 200-300 images max. Best use case: if you’ve recently added an add_image_size() to your theme functions, and have images already uploaded that you need in your new custom size. You can achieve the same effect by going to the media library then opening and saving an image — but that becomes tedious for more than one image.
Debug Bar + Console + Extender
This is actually three plugins, but we’ll count it as one. The main plugin here is Debug Bar, which adds a “debug” menu to your admin bar showing you any warnings/notices/errors, memory usage, queries used, and some other stats. Extender adds more detailed information, as well as a profiler and relevant functions that you can build in to your code for optimization/debug purposes. The console is actually my most used portion of the three – it adds a console to the debug menu that lets you run PHP and SQL as if you were actually in a terminal. It’s very handy for quickly checking something in the database without loading up an sql client, or var_dump()ing a variable in page to see what you’ve got going on.
What The File
Simple yet elegant plugin that adds a new section to the admin bar showing you which template file you’re currently viewing. Yeah, sure, if you have a properly placed body_class() you can see it in the source code too, but I find this plugin to streamline the process. I’ll usually install this when I get someone else’s code I need to work on, or if I’m dealing with more than 3-4 template files.
User Role Editor
If you’ve noticed a theme (pun aggressively intended) in this list, it’s that I like my plugins simple. If I can’t find a plugin that makes my life easier and less cluttered, I’ll usually just do whatever needs doing with PHP instead of relying on a shady 3rd party plugin. Sometimes a plugin just overwhelms you with options, especially in the realm of user capability management. User Role Editor wins my award for the simplest capability/role editor that still works. Sure, Role Scoper is more powerful — but it’s as ugly as a slug, to coin a phrase.
This sweet plugin gives you pretty decent control over the WordPress Dashboard on a user-role basis. It lets you show/hide menu items, dashboard panels, and a variety of other aspects of the WP Dashboard, per user role. I’ve noticed that it doesn’t play nicely with some plugins that add menus to the Dashboard, so keep that in mind.
CMS Tree Page View
The hokey name of this plugin nearly scared me off, but it’s actually a nice little package. It gives you a new menu in your posts/pages. You can also add this menu to the Dashboard welcome screen, one of the first useful widget that I’ve found for that screen. (Does anyone actually use QuickPress?)
Theme My Login
Ever wanted your users to login to your site without seeing the WordPress login screen? This plugin lets you move all the login and profile stuff to the front-end of your website. You just add [theme-my-login] to the page you want to be your login page, and all the login/profile information will show up in that page’s template! You can also achieve this without the short code, within the plugin’s options screen. There’s a bunch of hidden features you need to enable that make this plugin extremely flexible. My one gripe is that it doesn’t grab all custom fields you’ve added to the profile (programmatically or with ACF)
This plugin is really intended for end-users of WordPress, but it does have some useful development features as well. It will automatically grab the classes from your editor-styles.css file and add them to a drop down in TinyMCE, letting end-users easily select between different classes. You can set up a toolbar for TinyMCE that’s relevant to your project, instead of having the whole shebang (getting rid of align: justify is a great example.)
This bad boy will make sure your theme is up to WordPress.com standards. It’s a little overkill, but great for finding areas of improvement in your theme. (Use this with the theme unit test!)
Disclaimer: Nobody has paid me off to write a good review of their plugin. To be clear, I’m only on the payrolls of Big Pharma, Big Science, and the Reptilians who secretly run our world through shadow governments but their true identity can only be glimpsed when your digital cable lags.