Теперь я передаю параметры в пользовательский шаблон в следующем формате
www.example.com/?pageid=12&rid=24&title=this-is-the-title
Я создал две таблицы. Поэтому мне нужно получить данные и отобразить их на этих страницах.
Я хотел бы использовать чистый формат URL, например:
www.example.com/pageid/12/rid/24/title/this-is-the-title
Кто-нибудь может рассказать, как этого можно достичь?
Спасибо
url-rewriting
templates
page-template
htaccess
user7282
источник
источник
Ответы:
add_rewrite_rule()
позволяет превратить симпатичный URL в переменные.(\d*)
/rid/
или/pageid/
([a-zA-Z0-9-]+
Вот класс для регистрации перезаписи и обработки запроса, если совпадение было найдено.
ОБНОВИТЬ
Я нашел более простой способ справиться с этим.
http://example.com/pageid/333/rid/444/title/your-title-here/
Этот новый способ использует
add_rewrite_tag
с_
для выполнения запроса для ID страницы только не мешая основной запрос. В приведенном выше примере,333
просто измените запрос, чтобы найти этот идентификатор сообщения вpre_get_posts
. Вы можете так же легко изменитьtemplate_redirect
илиtemplate_include
.Для ссылки на все параметры, переданные позже:
ССЫЛКА
источник
Если вам нужно простое решение, это может быть (не проверял код, поэтому не может быть таким простым, если он не работает ...) или, по крайней мере, он дает подсказку, что вам нужно сделать. Если вы посетите http://thereforei.am/2011/10/28/advanced-taxonomy-queries-with-pretty-urls/, вы найдете бонусный приз: Генератор правил переписывания в статье. Я использовал это раньше, но не в такой ситуации. Попробуйте объединить эту функцию с чем-то вроде этого:
Если вы не хотите использовать функцию eg_generate_rewrite_rules, вам нужно установить правила самостоятельно. Вы можете найти информацию о том, как это сделать, в этой статье.
Дополнительная информация: http://codex.wordpress.org/Rewrite_API/add_rewrite_tag
источник