Intereting Posts
Периодически получение jQuery «… не является функцией» ошибки Можно ли изменить любой HTML / URL-адрес, возвращенный из the_category () Добавление несвязанного пространства в пользовательскую функцию wp-запрос для популярного сообщения с простым полем Получить пользовательские классы в меню навигации WordPress Что-то вводит косую черту после любого статического ответа файла, сервер nginx Как я могу настроить часть пользовательской страницы домашней страницы? Как создать уведомление администратора из плагина с аргументом? Shortcode Отображение пользовательских типов сообщений Сообщение AJAX во всплывающем div Удалите «Вы используете WordPress 3.2.1» из Right Now Dashboard Widget Сделать тему переводимой для WPML Есть ли встроенная функция для проверки совместимости URL-адреса? Полное доменное сопоставление с WP3 в многопользовательском режиме Как перевести месячные имена в «Архивы»

Как переписать url wordpress?

Я делаю фильтр сообщений WordPress. В результате формы заявки получили этот URL:

http://local/rieltplus/category/catalog/?type=flat&price_min=1000&price_max=2000&area_min=5&area_max=50&room_num=5&etage=2&plan=old 

Как переписать URL-адрес следующим образом:

local / rieltplus / category / catalog / TYPE & price_min = 1000 & price_max = 2000 & area_min = 5 & area_max = 50 & room_num = 5 & etage = 2 & plan = old

То есть TYPE = получить тип параметра GET, а затем остальные параметры не изменяются. Пожалуйста, помогите мне … Я не знаю, как это сделать …

Solutions Collecting From Web of "Как переписать url wordpress?"

Вы должны подключить add_rewrite_rule() в init

Предполагая, что http://local/rieltplus/ является вашей домашней страницей, а category/catalog/ является архивом категории, это должно работать:

 add_action('init', function() { add_rewrite_rule( 'category/catalog/([^/]+)?$', 'index.php?category_name=catalog&type=$matches[1]&price_min=1000&price_max=2000&area_min=5&area_max=50&room_num=5&etage=2&plan=old', 'top' ); }); 

Если вы хотите сделать это доступным для любой категории, укажите в комментариях.

Кстати, local/rieltplus/category/catalog/TYPE&price_min не является допустимым URL, в отличие от local/rieltplus/category/catalog/TYPE?price_min или local/rieltplus/category/catalog/TYPE/?price_min ..

Чтобы получить переменную type , используйте get_query_var( 'type' ) но сначала добавьте его в основной запрос:

 add_filter('query_vars', function($vars) { $vars[] = "type"; return $vars; }); 

Вы должны очистить структуру permalink, сохранив вашу структуру permalink в settings > permalinks экран settings > permalinks или используя flush_rewrite_rules() ТОЛЬКО ОДИН РАЗ.

Изменить – согласно вашему другому вопросу в комментариях

 add_action('wp', function() { // this will work as long as GET type is the first is the query string if( "catalog" === get_query_var( "category_name" ) && isset( $_GET["type"] ) ) { if( ! empty( $_GET["type"] ) ) { $type = strval( $_GET["type"] ); $url = $_SERVER["REQUEST_URI"]; $url = str_replace( array( "?type={$type}&", "?type={$type}" ), "{$type}?", $url ); $url = str_replace( "?&", '?', $url ); wp_redirect( $url ); exit; } } });