Hiding a tag from the homepage and showing it in a dedicated page

Hi. According to the official routing docs, and according to all the posts i’m seeing on this forum, it should be possible to hide posts from a specific tag from the blog homepage, and instead showing those posts in a different page.

For example, if I want to hide posts with the tag side-projects from my HP, and show them a different page like /side-projects/, then it should be done like this:

routes:

collections:
  /side-projects/:
    permalink: /side-projects/{slug}/
    template: tag
    filter: tag:side-projects
    data: tag.side-projects
  /:
    permalink: /{slug}/
    template: index
    filter: tag:-side-projects

taxonomies:
  tag: /tag/{slug}/
  author: /author/{slug}/

This works for the most part but crucially the posts tagged with side-projects still show up in the homepage, which is a deal-breaker.

I have tested this both with my own live blog and with a fresh Ghost install working locally (version 5.87.1).

Any advice will be very appreciated :pray:

What you have /should/ generally work, but some themes ignore routing on the homepage – the problem is that they use a #get request to get the homepage content, and #get ignores routing. What theme is this?

The good news if you can edit the theme is that you can fix it! You’ll just need to add (or edit) a filter parameter on that misbehaving #get request.

Interesting. Thank you for that. I’m using the default source theme.
Is there a guide somewhere on how to tweak this #get request?

Thanks again.

That’s your problem. Source does a #get.

1 Like

Oh I see this issue in source’s repo

Thanks.

I changed the {{get}} for {{foreach}} and worked for me.

post-list.hbs