I'm currently working on a website for a church and I thought that Craft would be perfect for the project and a great way to learn it. However, I'm having a hard time wrapping my head around how to structurally build sermons into a craft cms site.

I want it to look something like this.

Sermons > Series > Series Title, Series Artwork, Series Bio, Message Title, Date, short Bio, artwork, links to watch, links to listen, social links,

Similar to this website. https://newspring.cc/sermons

Could anyone provide any insight into what ways they'd build this? I guess I'm getting hung up on if I have to create 2 channels to make this work? One for Sermons, and one for each series?

Edit: I want to be able to add a sermon series as and entry. And then go in and add each week's message as a separate entry under that particular sermon series. Does that make sense?

1 Answer 1


There is probably no best answer. There are a number of ways to structure craft to support this, and any answer is going to be highly subjective. A lot will depend on the relationships between the elements, and what the requirements of the different elements are (i.e. how complex, etc).

One option to get the desired uri pattern (i.e. /sermons/series-name/sermon-name) would be to do something like this:

  • Create a single called sermons that would be the landing page for the sermons section.
  • In the sermons template you would display the sermons overview content, and retrieve and display the 'series' (perhaps ordered by date, or category, or whatever).
  • Create a structure to house 'series', with at least 2 levels, with the series collection at the root and the individual series items (a.k.a. sermons), beneath. The series collection and series items would each have a different Entry Type so that fields could be unique for collection vs. items, and you can display a different template depending on the Entry Type.
  • Set the uri for the 'series' structure to be 'sermons/{slug}' and for nested entries to be {parent.uri}/{slug}.
  • You could also create additional levels for video, artwork, etc. which would get added to the uri automatically (where each level or type of content might get assigned its own Entry Type based on the type of content your working with) (i.e. /sermons/series-name/sermon-name/videos/video-name).

There are lots of other options and considerations also, but this might be an easier one to deal with, without having to create your own custom routes to get the uri pattern you are looking for.

This assumes of course that an individual series item (or sermon) belongs to only one series. If not, then you may want to consider other options, such as creating a channel for 'series' and a channel for 'sermons' and then relate the two using an entries FieldType.

You can even take the structure concept further and map the whole site using a single structure, with different entry types for the different types of pages. This makes the nav very easy to build and the sections/pages can all be moved around easily. And you can always pull in other content into those pages from other channels as needed. OR create a structure for the rest of the site and structure for the series, where the uri's match up nicely.

Basically. Lot's of options.

  • Even though there seems to be a lot of different options, this really gives me a lot to go on. I just had no idea where to start. I'm going to look into building a structure for them and see where that takes me. Thank you for the response! Oct 28, 2014 at 1:18
  • Douglas, I think you're wrong. There's one best answer and it's the one you gave here! It covers all relevant options and you explain them so good. :)
    – carlcs
    Oct 28, 2014 at 8:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.