Filtering by Taxonomy
You can use “Taxonomy” to filter your content. For example, let's say you have 3 locations and events happening in all those 3 locations. Visitors to your site may not want to look through your entire calendar at events across all of those locations; they may want to see only the ones happening close to them. What you want is a way to categorize your events by location, and allow your visitors to filter the events by location.
In the example below we add taxonomy to the ‘Event’ content type and place a filter on the calendar.
CREATE THE TAXONOMY
Navigate to: Structure > Taxonomy > Add Vocabulary
- Enter a name for your vocabulary - Example: ‘Event Locations’
- Description (optional) - for this example we’re using ‘Taxonomy terms for the Locations of our events’
- Select ‘Add Terms’ for the vocabulary you just created
- Enter a term info in the ‘Name’ field - example: ‘Main Street’, ‘Bookville’, ‘Off Site Location’ etc. (if you want to filter based on different types of events use terms such as ‘Author Signing’, ‘Book Club’, ‘Kid Friendly’ etc.)
Repeat steps 5 & 6 until all terms have been added.
ADD THE TAXONOMY TO YOUR EVENT CONTENT TYPE
Navigate to: Structure > Content Types > Event > Manage Fields
Add new field
- Label: Enter the label, for this example we’re using ‘Event Location Terms’
- Field Type: Term reference
- Widget: Checkboxes/Radio Buttons
- Select your ‘Vocabulary’ - for this example it would be ‘Event Locations’
- Save field settings
- Select ‘Required Field’ - this is recommended to make sure every event is properly categorized.
- Save Settings
ADD THE FILTER TO THE EVENT CALENDAR VIEW
- Before beginning to modify your view, decide which display of the view you want modified. If you want to modify only the “Month” display, make sure that tab is selected.
- When making changes make sure the ‘Apply’ buttons say “Apply (this display)” only. If the ‘Apply’ button says “Apply (all displays)” the changes you make will alter every display (Month, Week, Year, etc) of the view.
- As you edit the view, we highly recommend you save your 'view' after every step, especially when you see this message come up: “* All changes are stored temporarily. Click Save to make your changes permanent. Click Cancel to discard the view.”
Navigate to: Structure > Views > Event Calendar
- Under ‘Filter’ select ‘Add’
- Select ‘Content: ‘Event Location Terms’ (or the name of field you created in step 1a)
- Apply (this display)
- Configure the settings by choosing “Dropdown” and selecting ‘Apply and Continue’
- Select “Expose this filter to visitors, to allow them to change it”
- Set the ‘Operator’ to “is one of”
- Apply (this display)
Navigate to: Content > Add Content > Event
(For already existing events you can navigate to ‘Content’ and edit the appropriate selection to include a ‘Taxonomy’ term - step 6).
There are several available fields for you to utilize, to create the content of your page:
Title: This text will be used in 4 places:
- The title on your browser window
- The header on your published page
- It will also be used to construct the actual URL of the page
- The Event name displayed on the ‘Event Calendar’
- Body: Use the built in WYSIWYG editor to add text, images, links, and any type of content that tells visitors about the event. Not familiar with the WYSIWYG icons? Place your mouse to hover over an icon and it tells you what it is for.
- Event Date: The start date/time and end date/time appear on the event page itself and also determine where the event is placed on the ‘Event Calendar’
- Event Address: Will appear on the event page
- Books: Are there specific books associated with this event? Add them here.
- Select an ‘Event Location’ (these are the Taxonomy terms you previously created)
You can customize the settings of any of these tabs to your preference:
- Menu Settings
- Book Outline
- Revision Information
- URL Path settings
- Meta tags
- Authoring Information
- Publishing Options
You are all set. Selecting a location on the calendar will filter the events and display only the events in the selected location.