context has been set, don't run through the conditionals again. Just return the variable. */ if ( isset( $query_context->context ) && is_array( $query_context->context ) ) { return $query_context->context; } // End IF Statement $query_context->context = array(); /* Front page of the site. */ if ( is_front_page() ) { $query_context->context[] = 'home'; } // End IF Statement /* Blog page. */ if ( is_home() && ! is_front_page() ) { $query_context->context[] = 'blog'; /* Singular views. */ } elseif ( is_singular() ) { $query_context->context[] = 'singular'; $query_context->context[] = "singular-{$wp_query->post->post_type}"; /* Page Templates. */ if ( is_page_template() ) { $to_skip = array( 'page', 'post' ); $page_template = basename( get_page_template() ); $page_template = str_replace( '.php', '', $page_template ); $page_template = str_replace( '.', '-', $page_template ); if ( $page_template && ! in_array( $page_template, $to_skip ) ) { $query_context->context[] = $page_template; } // End IF Statement } // End IF Statement $query_context->context[] = "singular-{$wp_query->post->post_type}-{$wp_query->post->ID}"; } /* Archive views. */ elseif ( is_archive() ) { $query_context->context[] = 'archive'; /* Taxonomy archives. */ if ( is_tax() || is_category() || is_tag() ) { $term = $wp_query->get_queried_object(); $query_context->context[] = 'taxonomy'; $query_context->context[] = $term->taxonomy; $query_context->context[] = "{$term->taxonomy}-" . sanitize_html_class( $term->slug, $term->term_id ); } /* User/author archives. */ elseif ( is_author() ) { $query_context->context[] = 'user'; $query_context->context[] = 'user-' . sanitize_html_class( get_the_author_meta( 'user_nicename', get_query_var( 'author' ) ), $wp_query->get_queried_object_id() ); } /* Time/Date archives. */ else { if ( is_date() ) { $query_context->context[] = 'date'; if ( is_year() ) $query_context->context[] = 'year'; if ( is_month() ) $query_context->context[] = 'month'; if ( get_query_var( 'w' ) ) $query_context->context[] = 'week'; if ( is_day() ) $query_context->context[] = 'day'; } if ( is_time() ) { $query_context->context[] = 'time'; if ( get_query_var( 'hour' ) ) $query_context->context[] = 'hour'; if ( get_query_var( 'minute' ) ) $query_context->context[] = 'minute'; } } } /* Search results. */ elseif ( is_search() ) { $query_context->context[] = 'search'; /* Error 404 pages. */ } elseif ( is_404() ) { $query_context->context[] = 'error-404'; } // End IF Statement return $query_context->context; } // End woo_get_query_context() } // End IF Statement ?>