Я пытаюсь создать правило перезаписи в Wordpress, чтобы создавать прямые красивые ссылки на результаты поиска.
Я работаю с настраиваемым типом сообщения под названием "объект"
Моя страница результатов находится по этому URL-адресу: http://www.domain.com/objects/
Я хочу создать такой URL-адрес, чтобы указать список новых объектов: http://www.domain.com/objects/new
Переписанный запрос должен быть: http://www.domain.com/objects/?filter=new
После этого я смогу использовать значение $ _GET ['filter'] для запроса моих объектов (meta_query) ...
моя проблема
Я пытаюсь сделать это с помощью этого кода:
add_rewrite_tag('%filter%','([^&]+)');
add_rewrite_rule('objects/new/','objects/?filter=new','top');
Тогда .htaccess выглядит так:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^objects/new/ /objects/?filter=new [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
К сожалению, когда я пытаюсь перейти по URL-адресу http://www.domain.com/objects/new У меня ошибка 404 :(
Панель отладки покажет мне это:
Request:
objects/new
Query String:
attachment=new
Matched Rewrite Rule:
[^/]+/([^/]+)/?$
Matched Rewrite Query:
attachment=new
Может кто-нибудь сказать мне, почему Wordpress пытается получить вложение? Что-то не так в моем правиле перезаписи или я что-то упускаю?
Заранее спасибо за помощь!
index.php?pagename=some-page-name
, сindex.php?page_id=123
все в порядке. 01.04.2014