В настоящее время у меня есть это:
mysite.com/product-name
mysite.com/another-product
и т.д., где product-name и another-product являются сообщениями.
Затем у меня есть собственный тип записи под названием Changelogs, который у меня есть для каждого продукта, возможно ли получить что-то вроде URL:
mysite.com/product-name/changelog
mysite.com/another-product/changelog
Если так, как бы я это сделал?
В Wordpress уже нет такой вещи, как "Sub Posts" .
Но возможно, что вы создадите плагин, который вводит "Sub Posts" в стиле, который вы их описываете.
Технически, вы говорите не о подпунктах, а о макете URL. Поэтому в Wordpress вы добавляете конечную точку ("журнал изменений"), которую вы можете обрабатывать с помощью какого-либо плагина, например, переключая отображение на какой-то другой пост.
Когда-то это не работало должным образом с конечными точками, но я думаю, что теперь это как-то исправлено. Я не использовал это жестко, поэтому мой ответ пока только информативен.
Привет @ Адам:
Как вы, наверное, знаете, все "сообщения" хранятся в одной таблице базы данных для "сообщений" , "страниц" и любые пользовательские типы сообщений.
Я упоминаю предыдущий, чтобы подчеркнуть, что все "записи" имеют поле post_parent
available , и я успешно использовал его для создания parent-child взаимосвязь, например, между типом записи 'restaurant'
и типом записи 'restaurant-location'
.
Однако URL-адреса немного сложнее, и я фанат, когда дело доходит до Хорошо спроектированных URL-адресов , так что вы знаю, я бы посмотрел в это сильно.
Я реализовал код, чтобы сделать аналогично тому, что вы просите (для примера ресторана/местоположения), но он очень хрупкий и имеет потенциал для создавать нежелательные побочные эффекты с другими плагинами, поэтому я действительно боюсь опубликовать его здесь, и, по сути, причиняя людям больше проблем, чем помощи.
Хотя некоторые из более хардкорных разработчиков WordPress, которые часто trac и список wp-хакеров , похоже, не думают, что есть большая проблема с системой маршрутизации URL все остальные, кого я знаю, кто на самом деле пытался использовать его для любого другого шаблона, кроме ведения блогов, борются с ним и находят его в ярости. Вот почему я отправил этот тикет и надеюсь, что в ближайшем будущем у меня будет время для обсуждения:
В настоящее время использование хорошо продуманных URL-адресов слишком сложно и чревато опасностью, чтобы быть жизнеспособным вариантом. Поэтому в краткосрочной перспективе я действительно рекомендую придерживаться стандартного макета URL , пока у меня не будет достаточно свободного времени для его решения, или пока кто-то еще не улучшит систему маршрутизации URL-адресов WordPress или кто-то даже не примет меня на работу. почини это.
К сожалению Я знаю, что это был не тот ответ, который вы искали , но он честный и искренний.
После завершения вышеизложенного ответа мне приходит в голову, что вы могли бы достичь того, чего хотите, более просто, о чем я сначала думал, используя ответ, написанный в этом вопросе:
Я знаю, что заголовок вопроса не будет означать для вас, что он будет уместным, но вопрос был по сути о типе "sub post" и связанных URL.
Извините, это не пришло мне в голову, пока я не разместил ответ выше.
Я вернулся к этому проекту после того, как некоторое время не работал над ним, и вот что я получил:
так же, как с моими предыдущими примерами, где у меня есть:
mysite.com/product-name/changelog mysite.com/another-product/changelog
это сообщения (типа changelog), а фактический слаг - product-name-changelog
Затем я использую плагин Redirection, чтобы пройти через
/([a-zA-Z0-9-]*)/changelog/$
в
/$1-changelog/
Но в итоге он перенаправляется как 301 на mysite.com/product-name-changelog
Я попытался подключиться к wp_redirect и canonical_redirect, чтобы попытаться остановить перенаправление, но пока безуспешно.
Любые предложения о том, что еще попробовать?