WordPress не сохранит мои параметры URL - PullRequest
1 голос
/ 13 июля 2011

Я работаю над сайтом WP и каждый раз, когда я добавляю URL-параметры в URL-адрес, он перенаправляет страницу в версию без параметров.

Пример:

http://mysite.com/?foo=bar -> перенаправляет на -> http://mysite.com/

http://mysite.com/contact-us/?foo=bar -> перенаправляет на http://mysite.com/contact-us/

Как я могу это исправить? Нам нужны определенные параметры для загрузки страницы по разным причинам.

Содержимое .htaccess (отредактировано для добавления QSA - который не работает):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L,QSA]
</IfModule>

# END WordPress

Ответы [ 2 ]

0 голосов
/ 13 июля 2011

Вы должны использовать query_vars, чтобы это произошло.WordPress хранит все параметры строки запроса, которые могут ему понадобиться, в глобальном объекте и игнорирует все остальное.

Вам необходимо указать ему выполнить следующее:

  • Проинструктировать WordPress о необходимости сохраненияваши переменные.Вы добавляете фильтр к query_vars, чтобы сделать это.Пример приведен в ссылке ниже.
  • Получите ваши данные, используя $wp_query->query_vars['customvariable'] вместо обычного _GET или _POST.

Подробности можно найти здесь:http://codex.wordpress.org/Custom_Queries#Custom_Archives

0 голосов
/ 13 июля 2011

Добавьте флаг «запрос строки добавления» (QSA) в конец ваших правил перезаписи.

'qsappend | QSA' ( q uery s tring a ppend) Этот флаг вызывает перезапись механизм для добавления части строки запроса строки подстановки к существующая строка вместо ее замены. Используйте это, когда вы хотите добавьте больше данных в строку запроса с помощью правила перезаписи.

RewriteRule . /index.php [L,QSA]

# Without QSA: http://mysite.com/contact-us/?foo=bar →
#   http://mysite.com/index.php?page_name=contact-us
# With QSA: http://mysite.com/contact-us/?foo=bar →
#   http://mysite.com/index.php?page_name=contact-us&foo=bar

Подробнее см. В документации Apache .

...