Pods Basics: Installation and Setup

Published 4 years 3 months ago on January 4, 2010 — 7 min read

Installing Pods is equally easy as installing any other WordPress plugin. You can either use the built in admin installer, or upload the plugin files to your plugins directory. Once installed, go ahead and activate Pods. You may receive a not-so-pretty notice letting you know that you need to modify your .htaccess file. This is so Pods Pages can work properly using SEO friendly slugs (just like WordPress does). Pods offers a text file from which you can copy an acceptable .htaccess file, and even tells you where the file needs to be on your server.

Once installed, Pods gives itself an entry in the admin sidebar:

Pods in the WordPress Admin

Under the Pods entry in the sidebar are a number of additional links.

Browse Content
Allows you to browse all the content in the Pods database tables.
Package Manager
Pods has a built in import/export system which allows your existing Pods to be portable.
Menu Editor
Pods also allows you to build a navigation structure based on your existing Pods much like WordPress Pages.
Add country, Add state
These are existing Pods included by default. You can manage the Pod content using these links.

How to create a Pod

I define the need for a Pod when a website has a particular section of pages (or even a single page) that requires a specific set of fields having to do with the subject at hand. As an example, we’ll go ahead and create a Team Pod that will house the various details about company team members. The First step is to Add the Pod by clicking Pods up top, and then Add new Pod:

Adding a Pod

Note: When creating a Pod, the name must be lowercase, no special characters or spaces.

After you’ve created your Pod, your instantly brought to the Pod manager. Here is where you’ll define what fields your Pod has, as well as a few settings regarding the Pod itself:

The Pod Manager

By default, Pods will add a name field (which is permanently required) as well as a desc (description) field. The available fields in Pods are as follows:

Date
Required to be a date
Number
Validated as a number
Boolean
Renders as a checkbox to the user
Single Line Text
Generic single line text box
Paragraph Text
Multiline text box with HTML formatting
Code
Multiline code field
File Upload
Ties in directly with the WordPress Media library, also allows you to upload new media directly
Permalink (slug)
Automatic slug generation for each Pod entry
Relationship (pick)
Allows the Pod entry to be linked to another Pod or a WordPress object (Page, Post, User)

With this being a basics-only tutorial, the last bit which will be useful when first working with Pods is the Attributes section of the field. Using the available check boxes, you can make a field required (can’t be empty) or unique (can’t duplicate the data entered in another entry).

Adding fields to your Pod

You can add as many columns (fields) to your Pod as you’d like. For our example purpose, we’ll add the following columns (name already present by default):

  • Job Title: single line text
  • Photo: file upload
  • Bio: paragraph text
  • Employee of the Month: boolean
  • Permalink (optional): permalink (slug)

When adding columns, do yourself a favor and make the name both easy to type as well as easy to remember. No spaces, all lowercase, no special characters. Pods provides a Label field for us to better describe the column to our user:

Note: You’ll notice that we’re using a Permalink column in this Pod. Permalinks work in the same way as in WordPress itself. I’ve purposely labeled this column as optional primarily because the word itself confuses clients. Additionally, Pods will automatically generate a slug when the Pod is submitted if nothing is filled out. No harm, no foul.

The Pod Column Label

When all of our columns are added, we can reorder our fields by dragging the arrow icon and clicking Save settings, we can edit a single column by clicking the pencil icon, and we can remove a field by clicking the appropriate red X. We’ll go ahead and remove the body field if you haven’t already, and be left with the fields we’d like to work with:

All of our fields in the Pod

Note: Pods uses AJAX a lot. When reordering columns, you’ll need to hit Save settings in order for that change to be applied. Additionally, when creating new Pods, entries in the sidebar will not appear until you’ve refreshed the page. It’s sometimes a recurring theme, but the AJAX is helpful as it allows you to rapidly build your Pod without having to wait for page refreshes every time. I imagine this will be improved upon where possible in further releases.

Managing the content stored in your Pods

Setting up your Pod is only one-third of the process. After getting your columns in order, you need to populate some data to work with. This also gives you great insight regarding what your client will see when they manage their data. If you hit the Pods link in the sidebar to force a page refresh, you’ll notice a new entry at the bottom:

Our new Team entry in the sidebar

Clicking this new entry will allow us to manage the content within our new Pod.

The Edit Pod screen

Clicking Save changes will save all the data to our Pod for reference in our theme. If you hit the Browse button at the top of the edit screen, you’re shown a listing of all team entries:

Browsing Pods entries

Isn’t that much better than creating a generic WordPress page? You can order your Pods entries by the available columns, and limit the listing by narrowing the search as you can when browsing other WordPress data tables in the admin.

Integrating your Pods a bit more

Pods allows you to make managing this content that much more straightforward. If you edit the team Pod we just created by clicking Pods (in the sidebar), then the Pods tab up top, and choose team from the dropdown, our team fields will be loaded and we can maintain the various attributes of this Pod. What we’re going to do is mark this Pod as a Top Level Menu. What that means is that our Pod will now show up as its own entry in the WordPress admin sidebar, as opposed to being a subentry under the Pods heading. To make this change, simply check off that this pod is indeed a Top Level Menu, and give it a Menu Label:

Make our Pod a Top Level Menu

Once you’ve filled out the label, you can go ahead and click Save settings. We’ll again hit the Pods entry in the sidebar on the left, and you’ll notice that we now have a dedicated entry for our Teams Pod. Awesome!

Our Teams Pod as a top level menu

Implementing your Pod on this level will help your user to better make sense of how to manage the content of this custom data set.

Limiting access to Pods

One of my favorite features about Pods is that it gives you fine grained control when determining who will be able to manage what when it comes to your Pods content. Using the Roles panel, you can give user accounts access to certain Pods and remove access from others. The feature comes in really handy when taking advantage of the various user Roles WordPress provides. You can manage this access by clicking Pods on the left in the sidebar, and then hitting the Roles tab up top:

The Roles feature in Pods

Now that we’ve set up our Pod and added a bit of data to it, the next article in this Pods CMS Series will guide you through pulling the data for use in your theme.

The Pods CMS Series on MBN

This article is the second in a series for Monday By Noon dedicated to Pods CMS.

  1. An Overview of and Introduction to Pods CMS for WordPress
  2. Pods Basics: Installation and Setup
  3. Pods Basics: Pulling Pods Data to your Theme
  4. Pods UI: The Latest and Greatest Addition to Pods
  5. How to use Pick Columns (Relationships) in Pods
  6. The Last of the Pods Basics: Pagination and Sorting

There's a conversation brewing

  1. The example I was looking for! Thanks! :)

  2. Very clear tutorial. Much easier to understand than the Pods user guide. Thanks for detailing the Pods implementation process.

  3. I have followed the installation and setup tutorial and have arrived at the end of this tutorial with a pod set up on my admin panel. However, it doesn’t appear on my site, yet.
    So I went to the tutorial “Pulling Data…” and made a template, hoping to see a page with pictures, name fields and descriptions. Those are the columns I set up in the pod. My template doesn’t create a page. I created it in templates in the pods admin screen. Is that the right place?

  4. Before my rant, I’d like to say that the tutorials on this website are written very well, and it made it super easy to understand PODS, so kudos.

    When WordPress 3.0 came out I got real excited. I have always built a custom CMS for every client, but always wanted to check out WordPress.

    In a day or two I was able to write my own plugins and widgets and build a site.

    I was able to build a testimonials page with custom fields, but did not like the fact that you can’t set a custom field to be required, or validated it at all.

    So another day or two of looking for plugins that would allow me to do more with WordPress I finally found PODS. Hands down the best written in its category.

    Sadly though, there were sql errors popping up every time I tried to create a new pod, or add columns etc….

    Not to mention it doesn’t work unless javascript is enabled. Maybe just my personal opinion, but I think everything should work without Javascript.

    To be honest it really blows my mind that WordPress core does not allow you to validate custom fields. And for that matter you can create a page or a post with no content.

    I guess for now i’ll still use WordPress for simple websites. But for custom solutions I’ll still have to use my own code and start from scratch each time.

  5. I’m not getting the sql errors Kyle is (above) at all. It might be a problem with how he’s hosting his site and the version of PHP he’s running.

    Custom Post types are a really valuable addition to the CMS capabilities of WordPress. For example, I have a customer who regulalry adds to a portfolio section on their website. With custom post types – and in particular the ability to have a new menu item on the left in WordPress Dashboard, you can make the learning curve of your customer much shorter.

    Thanks for the intro and additional articles, I like your lay-person approach because it allows everyone to see just how powerful WordPress is as a CMS.

  6. Hey Kyle!

    I found this, http://www.openscriptsolution.com/2009/09/25/how-to-prevent-displaying-sql-error-message-in-pods-cms/

    BTW did you try out other CMS? I was pretty happy with SilverStripe but getting more and more praised by WordPress.

  7. Jonathan, you are a star of accessibility, thank you.

    Have been wanting to get my teeth into PODS for a while now, finally have the chance. What a remarkable plugin Scott and Co have put together. Seemingly endless possibilities. Darned exciting.

  8. I have a question around this, is it possible to arrange the order of added custom fields to a pod?

By all means, contribute

Leave a comment

Powered by Fusion

This article is so meta

Published January 4th, 2010

Random article

css.php