Add a jobs board listing to WordPress with plugins, themes, or your own code!
A few weeks ago I launched my SEO jobs page. Since I started SEOgadget I’ve wanted to build something that resembled a basic “jobs board” to complement my blog, owing to the fact that a lot of my time over the past few years has been spent on recruitment SEO. Now that my internal linking campaign is over, let’s get on with the post…
How to add basic jobs functionality to your WordPress site
In the past I’ve always advised clients to create industry sector or job title specific pages on their recruitment websites. Why? Apart from creating a meaningful, easy to optimise site structure, you can also get some great content on the page featuring lots of links to jobs you’ve just posted. Here’s a nice example of what I’m talking about on a website like this. The page design is well put together without drawing attention away from the main calls to action.
Before we begin, you might consider getting a WordPress jobs board theme…
My WordPress jobs page is much simpler than the legal jobs board, but it does work. That said, it’s far from a perfect solution if you need to create a full jobs board website. If you’re looking for a fuller, more reliable jobs board plugin, try the JobPress Theme. JobPress can take payments for job submissions via a form integrated with PayPal and has the ability to easily add or remove new employment sectors. The JobPress site explains the features, so take a look.
You could also try Press75’s “TappJobs” theme, which relies on job posting via the Gravity forms plugin. That’s very similar in setup to this blog. If you’re interested in TappJobs, take a look at the theme here.
Posting jobs to WordPress via a submission form
I mentioned Gravity forms earlier, which we use at SEOgadget to write job submissions directly to our WordPress database. Get Gravity forms and give it a try.
Want to code your own with the category page approach?
To make this work, we’re going to modify a copy of the category.php file than controls category pages just like this one, and turn it into a content manageable page.
1) Take a copy of a category page (category.php) and save it on your desktop as jobs-page.php. I’ve created a text file containing the basic code here.
2) Next we need to turn our modified category page into a WordPress page template that you’ll be able to select in the “page template” drop down when you’re creating a page in WordPress.
All you have to do is insert the following code right at the top of the page:
Template Name: [Your template name]
3) Make the page content manageable by adding the The Loop
Our category page doesn’t have the ability to display post content yet. That’s because we’re not using The Loop, which is driven by this tag:
<?php the_post() ?>
So, to get a content managable page, that displays a specific category of posts, you need to insert the following code between the
<div id="content"> opening container and the page title:
The code to insert looks like this:
<?php the_post() ?>
<h2 class="entry-title"><?php the_title(); ?></h2>
<div id="post-<?php the_ID(); ?>" class="<?php sandbox_post_class() ?>">
<?php the_content() ?>
Now we have a page that will display your content and a nicely formatted list of posts directly beneath it. Just a few small tweaks and you’ll have a usable page.
4) Get your new page to always display posts of a set category
First of all you need to define a category matching you want to do. For this example, it’s “Jobs” – which is category 44 in my blog. (You can work out the category number of your new category by clicking to manage>categories and mousing over a category link. The cat_ID= query will show you what you’re looking for.) You could of course use this post to create a simple product page, in fact there are probably hundreds of ways to use it!
To always display posts in a specific category, replace this line:
<div class="archive-meta"><?php if ( !(''== category_description()) ) : echo apply_filters('archive_meta', category_description()); endif; ?>
With this one:
<div class="archive-meta"><?php query_posts('cat=44'); ?>
5) Consider the correct summary text before the category list appears.
Mine is rather imaginatively displayed as: “Below are our latest SEO Jobs”. You could be really creative and say “Below are our top 5 hot jobs” – but that’s a bit too exciting for me.
Look out for the page-title class and take out the dynamic call for the category name. The old code looks like this:
<h2 class="page-title"><?php _e('Category Archives:', 'sandbox') ?> <span><?php echo single_cat_title(); ?></span></h2>
And we’ve simplified it down to this:
<h2 class="page-title"><?php _e('Below are our latest SEO Jobs', 'sandbox') ?></h2>
6) When you’re finished, save your changes and upload your new jobs-page.php file back to the /public_html/wp-content/themes/your-theme/ directory.
Create a new page in the usual way and select your new template. Obviously, you’ll need to create a few test posts in your new category (or add some real jobs / products / news items or whatever you can think of).
7) Don’t want items to appear on your homepage?
Let’s imagine for a second you don’t want to send your rss subscribers or homepage visitors every single job you post from now on. It’s really easy to exclude specific posts from your homepage, category pages and rss feeds independently by installing the “Advanced Category Excluder” plugin, which can be downloaded here.
Have fun breaking creating your new page and please leave comments – I’m really interested to hear alternative ways of achieving the same idea, perhaps with less code?
By the way, if you’re looking for further tips on optimising your jobs board, feel free to take a read of my recruitment SEO guide. Thanks!