Intereting Posts
категории сообщений – как показывать только категории с определенным идентификатором родителя Удалите каталог wp и slug для настраиваемого типа сообщений из URL-адресов. Как показать следующую / предыдущую ссылку, когда она не активна? Как применить пользовательский сортировку к контуру продукта WooCommerce Почему параметр _builtin «не рекомендуется в» register_post_type () «для пользовательских типов сообщений? Неопределенный индекс: id, когда я сохраняю параметры Разрешение HTML в описаниях меню Как добавить визуальный редактор wp в пользовательский виджет? Как использовать google api для входа в wordpress Невозможно изменить ширину содержимого в визуальном редакторе Форма комментария – E-mail не требуется! Реализация двадцатьнадцатого отзывчивого меню в двадцать четвертом Ошибка сайта WordPress 500 Фильтр media_upload_tabs не работает в классе Стратегия обработки иерархических страниц с пустым родительским контентом

Как переписать 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; } } });