Views can query your WordPress database for post types, users and taxonomies. There are some combinations that allow you to have a View within the loop of another View. This lets you create even more complex displays than you can with a single View.

Let’s take a look at how it works.

Taxonomy View with a Post View for a Child

If you want to display a taxonomy, or a number of taxonomies, and then display posts within that taxonomy, you can use a Post View inside a Taxonomy View. To explain how this works, it’s best to look at an example, like the WordPress Magazine Theme that we created using Views.

The main content area of the Magazine Theme looks like this:

the main magazine content area from the WordPress Magazine Theme that was created with Views
Main content area

To create this layout you would need to create two Views:

  • The Taxonomy View that queries the database to display specific taxonomies
  • The Post View that displays posts based on the parent taxonomy

Filter posts based on the category set on the parent Taxonomy View
Filter posts based on the category set on the parent Taxonomy View

This enables you to display dynamic layouts of posts, that are displayed inside a parent View.

Taxonomy View with a Taxonomy View for a Child

Another way to put Views within Views to use, is to include a Taxonomy View within a Taxonomy View. This is what we did to create our WordPress Classifieds Website. Including a Taxonomy View within a Taxonomy View can be a great way to create complex lists that have multiple layers.

The main content area of the Classifieds Website looks like this:

the homepage layout for the classifieds wordpress theme
Homepage layout

To create this layout you would also need to create two Views:

  • The Taxonomy View that queries the database to display parent terms in the taxonomy
  • The Taxonomy View that queries the database to display child terms based on the parent

Filter taxonomies by a parent set in the parent Taxonomy View

User View with a Post View for a child

You may need to create a list of users and display a series of posts created by every user, like for example to list the last 5 posts of every administrator.

To create such layout, you need two Views:

  • The User View that queries the database to get the users that you want to display.
  • The Post Vew that displays posts based on their author.

Filter posts by user set in the parent User View
Filter posts by user set in the parent User View

Then you just need to create the View listing users and add the one you just created as a field to your layout, as explained below.

Pro tip: if you use additional filters in the Posts View, you can achieve quite nice and complex things

Adding a View to a View

Adding a View to a View’s layout is simple, and is done in the same way as you would add a Content Template to a View.

Create your inner child View first, so that you can add it to your parent. Then create the parent View, scroll to the Loop Output section and place your cursor inside the wpv-loop tags. Then click Fields and Views: this will display a pop-up which will show you which Views are available for you to insert.

Adding Views to a View
Adding Views to a View

Simply click on the View’s name and it will be inserted into the loop.

To learn more about Views in Views, try following our Magazine Theme or Classifieds Tutorials.