Post relationships allow you to create connections between your custom post types. Using them means you can eliminate data duplication, meaning each element only needs to be edited once.

Once you have created your post relationships you, of course, will need to add content to your custom post types which will be useful for the user. One of the easiest ways to do this is by using repeatable field groups. Repeatable field groups let you add a set of fields to a custom post type as many times as you need without having to recreate them one by one.

One of the best ways to implement both of these features is by using Toolset’s suite of plugins. Toolset allows you to create relationships between post types without using any PHP at all – saving developers hours of unnecessary work.

Within this post we will explore the following:

  • The different types of post relationships and how they benefit you
  • How to create a many-to-many relationship with Toolset
  • Creating connections between custom post types on the front-end
  • Using repeatable field groups to easily add content to your custom post types

When you would use the three types of post relationships

  1. One-to-one relationship

The one-to-one relationship is an exclusive connection between a child and parent element of different custom post types. Both the child and parent will only be linked with one element from the other custom post type.

For instance, on a travel website selling guided tours, you might want to create a connection between your “tours” and “special offers” custom post types. Let’s imagine that you are advertising a tour of The Louvre in Paris, you could very well offer a 20% discount at the gift shop inside. Now obviously that 20% discount won’t make sense for your other tours which do not go inside The Louvre so they would need an exclusive connection.

The advantage of connecting these two custom post types is that you only need to edit either of them once and the changes will automatically appear on the other custom post. For example, if you wanted to increase the gift shop discount to 30% you would not have to do it twice – once on the special offer post type and also on the Louvre tour post type itself.

However, there are many instances when an element from one custom post type will need to be linked with multiple elements from another. We have other post relationships for those.

  1. One-to-many relationship

One-to-many relationships occur when a child post can only be linked with one parent but the parent can be connected to many children.

Imagine that you have several tour guides for your tour of The Louvre and you want to assign their shifts on the front-end so tourists know who is the best person to contact. We will create two custom post types – one for “tour guides” and a calendar of the “tour schedule.” All of our tour guides will need to be connected with the tour schedule but each date will only need to be linked to one tour guide. For example, the 30 May tour will be taken only by Maria. However, Maria will also be taking the 2 June, 5 June and 8 June tours as well. Therefore, we would use a one-to-many relationship to link the one tour guide (Maria) with multiple tour dates.

  1. Many-to-many relationship

Many-to-many relationships are used for elements from two custom post types which will need to be connected with multiple elements from the other custom post type.

A tour company in Paris might run multiple tours and employ a team of tour guides which share the tours between them. As a consequence, they will need to keep on top of who is taking which one. Tour guides might be tasked with giving many different types of tours while there could be multiple tour guides on each type of tour.

Instead of manually adding each tour guide to a tour, we can create a many-to-many relationship between the two custom post types – saving developers a significant amount of time when it comes to building and running a website. This way you do not need to duplicate content and risk creating unforeseen complications. Let’s take a look at exactly how you can create this many-to-many relationship.

Creating a many-to-many relationship using Toolset

To create our many-to-many relationship between our tour and tour guide custom post types we will use Toolset’s relationship wizard.

The first step is to access the wizard under the “Relationships” section of the Toolset dropdown. Once there, we can select the “Many-to-many” option.

Many-to-many relationship

We select the “Many-to-many” option in the first step of the relationship wizard.

On the next page, we can decide which custom post types we want to connect with each other.

Many-to-many relationship

You can select the post types you want to connect.

We can now choose to limit the number of post types we will link with each other. For example, we might want to limit the workload of our tour guides by only assigning them to three tours while we only need three people to cover each one.

Post relationship limits

With these restrictions, you can only connect each custom post type with three items from the other post type.

In the next section, we can add specific relationship fields but this is unnecessary for the purpose of this many-to-many relationship. Therefore, we can move to the final slide and name it. We’ll call it “Tour relationships.”

Toolset post relationship

Our “tour” and “tour guide” custom post types can now be connected with multiple elements from the other.

We can assign new tours to our tour guides on the back-end through two ways. The first is to use the “Add new tour” option to create brand new tours or we can click on “Connect existing tour” to connect our tour guide with tours which already exist. Let’s use the second option to attach Ella to the Paris & Food tour. As you can see below, when we click on the option we can select the tour on the dropdown list.

Connect custom post types

We have created a relationship between the “Ella” and “Paris & Food” custom post types by using the “Connect existing tour” button.

We can now see on the front-end that Ella is now one of the guides for the Paris & Food tour.

Not only can we assign tours to our tour guides on the back-end, we can also easily create a form to make it possible on the front-end as well.

Using front-end forms to connect your posts

Many-to-many relationships and other types of post relationships can be created on the front-end in just a couple of clicks thanks to Toolset’s Relationship Forms feature.

In the back-end under the Relationship Forms section in Toolset, we can add the fields we want for our form. Notice how we have not used any additional coding to build it.

Post relationships

You can create your forms by taking advantage of Toolset’s form content generator. You do not need to use any PHP or CSS coding to create it.

Once we have added the necessary fields our form is ready for the front-end. Now if we wanted to assign Paula to the Paris By Night tour, for instance, it is simple to do without having to log in to the back-end.

Post relationships form

Once we click submit, we can now head to Paula’s tour guide page to see that it has been updated with her new tour.

Post relationships form

From Paula’s post we are able to click on the tours she is giving and find out more about each of them. However, we have yet to add relevant information to our “tour” custom post types for users to browse and read up on. One of the most efficient ways to do this is by using repeatable field groups.

How repeatable field groups help you add content efficiently

We can use repeatable field groups to display a list of the same type of information on a post, page or custom post type. Rather than spending a significant amount of time individually creating a set of the same fields over and over again, developers can use repeatable field groups to make them once and reuse them as much as they like.

When a customer clicks on the tour guide post type they will expect to find out certain information about the tour. For example, they might want to see a slideshow of images to discover what exactly they will be visiting. Instead of adding the image, title and caption fields each time, we can create a group of them once to reuse thanks to repeatable fields.

Repeatable field groups

We can create a new repeatable field group by clicking the “Add New Slider” option. The two post field types “Image of the tour” and “Tour Caption” will automatically appear.

As you can see below, we now have a slideshow of photos from the Eiffel Tower tour for people to view.

Repeatable field groups

For developers and content managers with a lot of information to manage. Utilizing both post relationships and repeatable field groups will make it easier to both build and run your advanced site.

Download Toolset today to find out how easily and quickly you can build advanced websites.

About Joe Lobo

Joe is a content creator at OnTheGoSystems. Joe is an explorer of WordPress plugins, such as WPML and Toolset, and of countries. He can be found on Twitter.