Most directory and database-driven sites need content that relates to other content: a property listing belongs to an agent, a course is taught by an instructor, a job posting is created by a company. JetEngine Relations creates formal database-level connections between custom post types and provides tools to display related content in Elementor templates. This is more reliable than storing related post IDs in meta fields and querying them manually.
What JetEngine Relations Actually Does
A JetEngine Relation is a defined connection type between two post types. You define the relation type (one-to-many, many-to-many) and JetEngine creates a database table to store the connections. When you create a property post and assign it to an agent, that connection is stored in the relation table rather than in post meta. This gives you reliable bidirectional access: from a property, you can get its agent; from an agent, you can get all their properties. This bidirectional access is what makes relations more useful than storing an agent ID in a property meta field.
Step 1: Create a Relation
Go to JetEngine -> Relations -> Add New. Configure:
- Parent object type – the “one” side (Agent)
- Child object type – the “many” side (Property)
- Relation type – One-to-Many (one agent, many properties) or Many-to-Many (a property can have multiple agents, an agent can have many properties)
After creating the relation, a new meta box appears on both post types in the WordPress admin. On the Property edit screen, you select which Agent this property belongs to. On the Agent edit screen, you can see all properties assigned to this agent.
Need help building with Jet plugins? Describe your project and get a free estimate.
Step 2: Assign Relations in the Admin
Open any Property post in the admin. In the JetEngine Relations meta box, search for and select the Agent post this property belongs to. The connection is saved immediately. You can assign multiple agents to one property in a many-to-many relation. The relation appears in both posts’ edit screens, giving content managers a clear view of how posts are connected.
Step 3: Display Related Content in Elementor
JetEngine adds relation-aware dynamic tags and widgets for Elementor. On an Agent archive page, use the JetEngine Listing Grid widget with the Query Type set to “Relation” – specifically “Get child items for current post”. This queries all properties related to the current agent and displays them using your Property card template.
On a Property single page template, display the related agent using JetEngine’s dynamic tags. Add a text element, enable dynamic data, and select “Relation Field – Parent Post – Agent Name”. The agent’s name pulls from the related agent post automatically.
Step 4: Filter by Relation in Listing Grids
On a directory homepage, you might want to show only properties that have an assigned agent (verified listings) or filter properties by their assigned agent. Use JetEngine’s Query Builder with a Relation condition: show only Property posts that have a relation to at least one Agent post. This conditional filtering makes relations more powerful than simple meta field storage.