URL $_GET не будет работать
У меня проблема, которой у меня никогда не было, и я не могу найти причину.
Я переместил мой сайт на другой хост, и теперь он не "читает" переменные $_GET.
У меня есть этот url: http://whatever.com/path?filtro=si&provincia=Santa+Fe&localidad=Rosario
И если я назову это:
$localidad = $_GET['localidad'];
$provincia = $_GET['provincia'];
$filtro = $_GET['filtro'];
echo $localidad;
echo "hola";
echo $provincia;
echo $filtro;
Ничего не печатает, кроме "hola", поэтому ошибки PHP нет.
Здесь мой .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Я работаю над сайтом Wordpres, возможно, он имеет какое-то отношение к Permalinks или чему-то, Im действительно потерян. Большое вам спасибо, я ценю вашу помощь.
ИЗМЕНИТЬ
Я переименовал свои .htacces, чтобы он не читал его, и страница сломалась, поэтому я перешел к настройкам постоянной ссылки в wordpress и установил их в
- Post Name http://luminias.com/index.php/example-page/
И теперь IT WORKS, но теперь это URL:
http://whatever.com/index.php/path/?filtro=si&provincia=Santa+Fe&localidad=Rosario
И он печатает все $_GET, но мне нужно, чтобы "/index.php/" ушел..
Ответы
Ответ 1
Добавьте add_rewrite_tag
функцию в ваш function.php для всех параметров:
function custom_rewrite_tag() {
add_rewrite_tag('%localidad%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);
И вы можете вызвать свой параметр в шаблоне, используя
$wp_query->query_vars['localidad']
Вот полная документация
Обратите внимание, что использование $_GET
на перезаписанном URL-адресе не будет работать, даже если rewrite включает переменные запроса. Вы должны использовать $wp_query
.