/** * Filter rewrite rules used for search archives. * * Likely search-related archives include /search/search+query/ as well as * pagination and feed paths for a search. * * @param array $search_rewrite The rewrite rules for search queries. */ function rewrite_rules($rules) { global $wp_rewrite, $polylang; _x('search', 'URI slug', 'boilerplate'); if (!empty($polylang) && $polylang->options['force_lang']) { $new_rules = []; $languages = $polylang->model->get_languages_list(['fields' => 'slug']); if ($polylang->options['hide_default']) { $languages = array_diff($languages, [$polylang->options['default_lang']]); } if (!empty($languages)) { $slug = $wp_rewrite->root . ($polylang->options['rewrite'] ? '' : 'language/') . '(' . implode('|', $languages) . ')/'; } $translations = pll_translations_x('search', 'URI slug', 'boilerplate'); //$search_uri = '(' . implode( '|', $translations ) . ')'; $search_uri = '(search|recherche)'; foreach ($rules as $key => $rule) { $new_rules[str_replace($wp_rewrite->search_base, $search_uri, $key)] = str_replace(['[9]', '[8]', '[7]', '[6]', '[5]', '[4]', '[3]', '[2]'], ['[10]', '[9]', '[8]', '[7]', '[6]', '[5]', '[4]', '[3]'], $rule); } $new_rules[$slug . $search_uri . '/?$'] = 'index.php?lang=$matches[1]&s=%20'; $rules = $new_rules; } return $rules; }
/** * Translate Object Type Rewrite Rules * * @param array $post_types * @return array $post_types */ public function pll_translate_taxonomy_slugs($taxonomies = []) { global $polylang; $object = get_taxonomy($this->obj_tax); if ($this->obj_rewrite && isset($object->rewrite['slug'])) { $translations = []; if (empty($translations)) { $translations = pll_translations_x($object->rewrite['slug'], 'URI slug', 'boilerplate'); } if (is_array($translations) && !empty($translations)) { $taxonomies[$this->obj_tax] = []; foreach ($translations as $language => $text) { $taxonomies[$this->obj_tax][$language] = $text; } } } return $taxonomies; }