Ever wonder how to convert your WordPress blog into a more automated posting process? One that can accept guest posts, job listings or even a forum-type of blog? Where users can submit a post, save it into your drafts section and all you have to do is approve or deny? The beauty of the open source community is that someone, somewhere had already thought about doing this, and have already developed a solution. With a combination of several plugins and some custom styling, here is how I was able to automate the guest post submission process here in my blog:
First thing you have to do is check the “Anyone can Register” option under “Settings” > “General”. Don’t forget to leave the “New User Default Role” as “Subscriber”.
Lock Down the Registration Process
Now that you have your site open for registration, it is best that you install these plugins first to enable tighter security:
Secure WP – as many options that this plugin comes with to enhance security, what I especially need it for is to disable the error messages at login (which this plugin does very well)
SABRE – stands for “Simple Anti Bot Registration Engine”. This produces that image during registration to block “autobots”.
Limit Login Attempts – the plugin title says it all. Activate this plugin and tweak depending how tight you want login attempts. Note that you’re not going to see any error messages due to the Secure WP plugin.
Hide the WP Admin Panel
So registration is open, security is tight – you still don’t want users to see your WordPress admin area. Not that there’s anything wrong with that – but it just looks more sophisticated when all is done in the front end. Install the following plugins:
Theme My Login – this plugin will generate a page called “Login” – this is where your new login forms (includes new registration and forgot password) will sit. Additional options also include custom emails, redirection and moderation. *Make sure you check “Enable Template Tag” under “Optimization” – You’ll need this in your theme later.
Theme My Profile – plugin created by the same author, which ports the users “profile” page into the front end. Make sure you theme and block admin area ONLY for roles you want.
The following screenshots show the login page, as well as the profile page generated by the plugins that I’ve mentioned:
TDO Mini Forms
We’ve come to the meat of the project. This is the plugin that does all the magic. TDO Mini Forms allows users (registered on not registered) to submit and edit posts to your blog. It comes with its form creator that lets you design the post submission form any way you want. Widgets that let you drag and drop components into your form, as well as a form “hacker” that allows even deeper code tweaking. What I especially liked is that it hooks up with your “Akismet” for spam protection.
After specifying all the configuration settings with TDO, go ahead and create a form with “Form Creator”. The form creator is a somewhat decent drag and drop interface where you grab the widgets in the bottom and drag it to the form. Widget settings are applied by clicking on the settings tab and it brings up the settings window as shown below:
Once you’ve decided on the fields and the settings, you can now alter the code to change the verbiage, along with adding HTML elements in order to be able to style it in your stylesheet. Below shows my contribute form:
Maybe some Custom Code
Depending on your pages – you might need to add some PHP conditional tags and functions to the theme manually. This is to link the new pages to each other. Simply copy your theme’s page.php file and rename it to something.php – convert it into a template by adding the code on top of the page:
Now below the call for the content, add the conditional tag with from the Theme My Login plugin:
The screenshot below shows the custom link to the contribute form that we just created:
All you have to do now is to wait for guest post submissions and depending on the content – simply approve, edit or deny. The submissions are saved as draft posts and are in the moderation view of TDO mini forms:
Conclusion
Now that you have converted your blog into a more automated (and sophisticated) posting process – think of all the possible scenarios you can create. Of course I’m completely aware that my guest posts will not land any successful submissions any time soon – it’s just good to know that it’s available. Not to mention, it was fun to make.
Just what I need ::: THX for sharing 😉
I’ll work through this later today then give some feedback :::
Thanks for great guide. I wish i do it as i want 🙁
It’s exactly what I need for a project.
Thanks a lot !
Interesting… so, that’s how he does it.
This is neat – but a question: When someone guest post (in my case, they will add their business information) – and I publish the post… can they go in later and update/edit that post?
Best case, they can update for the better… mild case, they post bad or defamatory information… worst case, someone gets their ‘not-so-secure’ password and posts redirects or other bad things…
yes, it can get dangerous since you’re allowing people to submit stuff. That’s why the need for all the security plugins.
Thanks for this post! It started me on the right track, but I got a problem and was wondering if anyone can help me.
I want to be able to setup a custom field so that an unregistered user can fill in their name and that will be the name of the author of the post.
I have searched everywhere… found this post (http://aext.net/2010/01/the-right-way-to-build-wordpress-as-a-community-news/) asked on there and my comment was moderated and removed 🙁 I couldn’t figure out how he did it, even with his instructions.
He just mentioned to put in (post_author) but I had no idea where or how to do it!
How can I solve this issue. I want to promote someone being able to submit a guest post and have their author name (and email too) just like comments but for a post that I can moderate.
Plz help! 🙂
Hi Opzzzz,
an unregistered user will not use the wp user details, therefore you need custom fields. set up the fields first in wordpress – then hook these fields up in the tdo form creator (drag “custom field” from the widgets section). Be sure to allow “unregistered users” to submit entries. I suggest to play around with tdo mini forms extensively to see how much you can do.
Great Article, i have one question. Can i use the form to submit events. Does TDO form have any calendar integration with it.It will be great if they do have it or custom set up for it. any ideas anyone. thank you
I can see how that can be useful.
Hey very nice Post
And thanx.. for sharing with us.
I have tried this on my blog but due to some error in Plugin “theme-my-profile.php” on line 367, I m not able to access my blog now.
Plz help me wat to do now.
I will visit again to check ur Reply.
Plz Reply, Don’t del this comment.
Thanx….:-)
@eHackz
Theme my profile plugin was created by this guy: Jeff Farthing: http://www.jfarthing.com/hire-me/
looks like you have a problem with the plugin. You might want to contact him as well.
You need to go in the database and deactivate all plugins – then you should be able to access your blog again.
Follow the instructions from this post:
http://perishablepress.com/press/2008/02/18/quickly-disable-or-enable-all-wordpress-plugins-via-the-database/
Let me know if this works.
Hi Michael,
I put on my site the theme Kubrick on crack and when I set 5 posts per page in the second page gets a blank area and if you set the settings to maximum six posts ,the area in blank is on the first page.
Thanks
Sergio
Rj – Brazil
i’ll to try ! thanks yah….
Thanks for the tips, I finally able to use the TDOMF. There’s one question though, when I test to use the form, how come after I click “send” button, the message such as “thank you for your submission…etc..etc..” doesn’t pop up? instead it just goes back to a blank form. I want to at least let the guest know it has been submitted. Please help, not sure if I’m doing anything wrong here. Thanks
Holy crap. This is about a kajillion times better than what I did at http://www.elleondejudah.com
I had the same idea, used Gravity Forms for a simple form that saved in the backend but I still have to copy, paste, etc.
THIS, Brian is the ninja stuff. Thanks man!
thank for this post, i was searching for this type of article.
I use Content Submit plugin which has some really cool features built in specifically for guest posting. here is the url http://www.affhelper.com/content-submit-plugin/ You can even charge for post submission and it’s free too.
Oh wow. That looks very useful. Thanks for sharing.
good post bro..
This post is useful. But the plugin is very complicated to configure.
I want my user to upload images and embed Youtube videos in there post. Presently I have Smart tube plugin. Using that only admin can embed youtube videos.
i would like to do this on my site, but im hosted on a wordpress.com site and i dont have the very first option you mentioned on my settings (which are .org options). Is there any other way to this on a wp.com site?
depends if they make the plugin for it.
i dont think plugins are usable for wp.com
Wow thanks Michael, very cool. We are opening up guest posting for our site and this looks like a great option, I’m just a little hesitant with the amount of extra plugins required and the potential conflicts as our list is already quite large
Hey, I’m following your guide to make guest posting easier on my website but the TDO Mini Forms WordPress Plugin doesn’t exists anymore. Is there any other plugin that can be used?
I have read somewhere that gravity forms has the same capability
I think this plugin can help you make it easy http://codecanyon.net/item/wp-frontend-form-multipurpose-posting-form/5103469?WT.ac=new_item&WT.seg_1=new_item&WT.z_author=phpface