To set up new and edit existing relationships, first go to the Toolset -> Relationships page.
When you create a new relationship, a wizard will appear that guides you through the different setup steps.
You can connect any post type (WordPress posts, pages, and custom post types) to other post types. First, choose the kind of relationship and then the type of post to be used on both sides of the relationship.
If you need relationships between users and posts, follow the tutorial on creating relationships and searches for users.
Many-to-many relationships can include fields of their own. For example, if you are creating a many-to-many relationship between “songs” and “albums,” the relationship is that of specific songs appearing on specific albums. In this case, you probably want the relationship to include a field for the “track number” (the location in the album where the song appears).
This is how the aforementioned relation would appear:
When you include fields in the relationship, you actually create an intermediary post type that holds these fields.
The intermediary post type appears as a double one-to-many relationship for the two post types in the many-to-many relationship.
Although the intermediary post type stores additional information and offers additional functionality, using it has no performance implications on looking up related content. Toolset looks it up without having to load the intermediary posts.
The following table summarizes what you can do when you have a many-to-many relationship with “relationship fields.”
Here, we will continue to use the example of an albums < tracks > songs relationship.
|When looking at object…||When you are…||You can…|
|Album||Editing an album||Connect songs|
|Displaying an album||Display all connected songs with a View|
Display all connected tracks with a View
|Song||Editing a song||Connect albums|
|Displaying a song||Display all connected albums with a View|
Display all connected tracks with a View
|Track||Displaying a track||Display the connected album|
Display the connected song
The final step in setting up a relationship is to give it a name. You can have several relationships between the same post types. Therefore, names that clearly express your relationships are crucial.
For example, let us consider airports and flights.
Airports have many flights. Each flight departs from one airport and arrives at another. The correct way to connect airports and flights is to set up two one-to-many relationships. We call one “departures” and the other “arrivals.”
Because we give each of these similar relationships a unique name, we can reference them separately. In this manner, when we display a flight, we can show both arrival and departure airports. Similarly, we can create a View that will show all arrival and departure flights for a specific airport.
Toolset will set a default name for the new relationships that you have established. Your site will be easier to manage if you consider what each relationship implies and create a meaningful name for each.
Once you have set up relationships between posts, you can start connecting posts based on these relationships.
You can connect posts that you have already saved. This means that when you first create a new draft of a post, you must save or publish it before you can connect it with other posts.
You will see each of the available relationships (relationships that involve the post type you are editing) as a metabox on the post editing page. For example, when you edit an airport, you will see boxes for the arrival and departure relationships.
You can connect existing posts or create new posts.
To disconnect posts, hover over them in the connections table and additional options will appear.
The Disconnect operation will retain both posts and only disconnect them. The Delete operation will both disconnect and delete the selected post (move it to Trash).
You can also delete connections that you have created. By default, an intermediary post is deleted together with the connection between parent and child posts. If necessary, you can disable this option during the creation or editing of a relationship. However, we do not recommend disabling it unless there is a very good reason. Especially not if your intermediary post type is not publicly visible.