• Чпу включено (/%category%/%year%%monthnum%%day%%post_id%)
    Имеется расширенный поиск связанный с плагином wp_paginate — 1: /events/?name=Data&market=Data 2: /events/page/2/?name=Data&market=Data.

    Проблема:
    При передаче данных с пробелами, на первой странице ссылка имеет вид -(/events/?name=Data+Data+Data), а при переходе на вторую страницу она ломается (/events/?name=DataDataData) т.е. пробелы (+) пропадают.

    Функция которая отвечает за чистку url (/wp_include/pluggable.php wp_sanitize_redirect()) оно и понятно поскольку ссылка которая попадает ей на обработку воспринимает + как \s но если делать так:

    function wp_sanitize_redirect($location) {
    	$location = preg_replace('/\s/', '+', $location);
    	$location = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%!]|i', '', $location);
    
    	$location = wp_kses_no_null($location);
    
    	//remove %0d and %0a from location
    	$strip = array('%0d', '%0a', '%0D', '%0A');
    	$location = _deep_replace($strip, $location);
    	return $location;
    }

    Происходит бесконечный редирект.

    Где собака зарыта?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • в function.php надо было добавить remove_filter(‘template_redirect’, ‘redirect_canonical’);

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    При передаче данных с пробелами, на первой странице ссылка имеет вид -(/events/?name=Data+Data+Data), а при переходе на вторую страницу она ломается (/events/?name=DataDataData) т.е. пробелы (+) пропадают.

    Исправлено в WordPress 3.3: http://core.trac.wordpress.org/ticket/18086

Просмотр 2 ответов — с 1 по 2 (всего 2)

Тема «Проблема с редиректом wordpress и передаваемыми get данными» закрыта для новых ответов.