/** * sets the language for home page * add the lang query var when querying archives with no language code * * @since 1.2 * * @param object $query instance of WP_Query */ public function parse_main_query($query) { if ($query !== $GLOBALS['wp_the_query']) { return; } $qv = $query->query_vars; // homepage is requested, let's set the language // take care to avoid posts page for which is_home = 1 if (empty($query->query) && (is_home() || is_page())) { $this->home_language(); $this->home_requested(); } parent::parse_main_query($query); $is_archive = count($query->query) == 1 && !empty($qv['paged']) || $query->is_date || $query->is_author || !empty($qv['post_type']) && $query->is_post_type_archive && $this->model->is_translated_post_type($qv['post_type']); // sets the language in case we hide the default language // use $query->query['s'] as is_search is not set when search is empty // http://wordpress.org/support/topic/search-for-empty-string-in-default-language if ($this->options['hide_default'] && !isset($qv['lang']) && ($is_archive || isset($query->query['s']) || count($query->query) == 1 && !empty($qv['feed']))) { $this->set_language($this->model->get_language($this->options['default_lang'])); $this->set_lang_query_var($query, $this->curlang); } }