I am (somewhat) following the guide on filtering content by tags. However, I would like to achieve the following:
In terms of content, I’m working with the starterkit as a base. So I have a projects folder with subpages, and a blog folder with posts. Project pages have a tag and so do blog posts. The markup for a project page looks like this:
Title: Project C
----
Year: 2012
----
Tags: design
----
Text: Lorem ipsum dolor
I have written a controller that gets all the project pages and blog posts and you can filter them with a tag, e.g.: http://localhost:8888/design/tag:design gets all the design projects and pages. I would ideally like to just have a URL like http://localhost:8888/design/.
My controller looks like this. The important bits are lines 13-16:
In my project page (project.txt is the filename) there is a field that says Tags: design. Like you can see in my first post.
For a tag page, I am using a template called tag.php. So I have a tag page for design, where the filename is tag.txt and in that file I specify that I would like to display the design tag.
I do this with a field called Tags, in the same way as the project page, but now I realize I should maybe call this TagToDisplay or something like that. Either way, a tag page specifies which projects and posts to display, by setting it as a field.
In the controller, I would like $projects to be the projects that have design as their tag, or whatever other tag should be displayed. I would like the controller to read the tag that should be displayed from the field in the tag page, rather than the URL.
Personally, I would do it differently, by using a route instead of pages.
But anyway, in your tag.php controller, you would then not filter by the parameter but by the page field:
$tag = $page->tag(); // or whatever you want to call that field
$projects = $projects->filterBy('tags', $tag, ',');
$blogposts = $blogposts->filterBy('tags', $tag, ',');
}