Display Employees (CPT) of a Company (CPT)


Let’s imagine that you have a Company and Employee CPT. Every Employee has a post_object field, where the current Company of the Employee is selected.

Our goal is to create a Card for Company CPT, which will display all Employees of the current Company.

Step by step guide

Create a View, then add the fields of your Employees CPT.

Next, Create or edit a Card, which will query posts by the relationship/post_object field.

Switch to the Meta Filters tab.

Click on the Add Rule button and then Add Field button to create a new Meta Rule, then select the target relationship/post_object field.

Choose Equal to in the Comparison setting.

Define a value, which can be done in a couple of ways.

  1. Use the special $post$ value if you’re going to paste a Card shortcode on a Page or Post, of which the ID should be used in the meta_query. This means the $post$ will be replaced with an ID of the Post, where you’ve pasted the shortcode, and the query will find all Posts, where the relationship/post_object field of the current post ID is chosen. In our Company example this fits perfectly well and can be used to display all Employees on the Company CPT.

  2. Numeric ID of the target Post. If you want to query all posts which have the specific Post selected in their relationship/post_object field, but this specific Post is different from the Page where you’re going to paste the shortcode, then you must define a numeric ID of that specific Post. In our Company example this can be used to display all Employees for the specific Company CPT on the homepage or another page.

  3. Use the relation field alias i.e. $post$.your-field to find all posts that have the same option selected as the current page. Note: if the current page field contains multiple values, then it will get pages, where at least one matches.

Save the Card, and paste the Card shortcode in the target place.

That’s it, you’re done.

Behind the scenes, it does the necessary trick of wrapping into quotes and using 'Like' for comparison, so you won't need to take care of it. It'll work with all the field options for Single, Multiple select and all return formats of a field.

Find out more about querying relationship fields in the official ACF article.

Last updated