Forked from barryhughes/use-list-view-for-categories.php
Last active
December 13, 2019 15:06
-
-
Save theeventscalendar/593130a4a059561eb9b0 to your computer and use it in GitHub Desktop.
Category archive pages default to List View regardless of the default view set
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Redirect event category requests to list view. | |
| * | |
| * @param $query | |
| */ | |
| function use_list_view_for_categories( $query ) { | |
| // Disregard anything except a main archive query | |
| if ( is_admin() || ! $query->is_main_query() || ! is_archive() ) return; | |
| // We only want to catch *event* category requests being issued | |
| // against something other than list view | |
| if ( ! $query->get( 'tribe_events_cat' ) ) return; | |
| if ( tribe_is_list_view() ) return; | |
| // Get the term object | |
| $term = get_term_by( 'slug', $query->get( 'tribe_events_cat' ), Tribe__Events__Main::TAXONOMY ); | |
| // If it's invalid don't go any further | |
| if ( ! $term ) return; | |
| // Get the list-view taxonomy link and redirect to it | |
| header( 'Location: ' . tribe_get_listview_link( $term->term_id ) ); | |
| exit(); | |
| } | |
| // Use list view for category requests by hooking into pre_get_posts for event queries | |
| add_action( 'tribe_events_pre_get_posts', 'use_list_view_for_categories' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This forces list view only without the option to switch to a different view. I wanted to only set the default view for event categories.
Instead of using the
tribe_events_pre_get_postshook, I used thetribe_events_parse_queryhook, where theeventDisplayquery variable is set.