Онилайт
с 9:00 до 21:00
info@onilite.ru

ЧПУ для нового типа записей и таксономий в WordPress

Виктор Черников
26.11.2019

Задача

Необходимо создать новый тип записей и таксономий, связанных между собой, с учётом иерархии таксономий с неограниченным уровнем вложенности.

А также настроить для них ЧПУ (человеку понятные url-адреса) следующего вида:

domain/catalog/category/
domain/catalog/category/tovar/
domain/catalog/category/sub-category/
domain/catalog/category/sub-category/tovar/

Решение

Используйте следующий код в function.php или в своём плагине:

Таким образом был создан каталог товаров. Вы конечно можете использовать свои названия записей и таксономий и создать например портфолио работ или каталог проектов, на ваше усмотрение.

Разъяснения

Вся сложность создания таких url заключается в том, что система не может выдавать записи и таксономии одновременно через одинаковый слаг (в нашем случае catalog). Происходит это из-за того что для записей и таксономий создаются абсолютно одинаковые правила декодирования url-адресов, так называемые «правила перезаписи».

Правила перезаписи — Это регулярные выражения, помогающие распозновать url-адрес и подключить необходимый шаблон страницы.
Правила хранятся в таблице базы данных wp_options, где option_name = rewrite_rules.

Чтобы преодолеть эту сложность, необходима функция создания таких правил и функция их перезаписи. Функция перезаписи должна срабатывать при создании/изменении/удалении таксономий для чего используем хуки WordPress.

Интересно почитать

Внутренняя SEO-оптимизация сайта

Общие понятия Для повышения позиций сайта в поисковой выдаче, повышения уровня трафика и конверсии…

Разработка дизайна сайта

Дизайн — это не только стиль Одним из самых важных и фундаментальных этапов создания…

Комментарии и отзывы

Ещё нет комментариев к данной записи...


Добавить комментарий

Для комментирования в один клик необходим вход или регистрация.

Заявка на обратную связь
Нажимая на кнопку, вы даете согласие на обработку персональных данных
+7 (937) 245-81-91
с 9:00 до 21:00
info@onilite.ru