it-swarm-ru.tech

URL-дизайн для постов?

В настоящее время у меня есть это:

mysite.com/product-name
mysite.com/another-product

и т.д., где product-name и another-product являются сообщениями.

Затем у меня есть собственный тип записи под названием Changelogs, который у меня есть для каждого продукта, возможно ли получить что-то вроде URL:

mysite.com/product-name/changelog
mysite.com/another-product/changelog

Если так, как бы я это сделал?

1
Adam Dempsey

В Wordpress уже нет такой вещи, как "Sub Posts" .

Но возможно, что вы создадите плагин, который вводит "Sub Posts" в стиле, который вы их описываете.

Технически, вы говорите не о подпунктах, а о макете URL. Поэтому в Wordpress вы добавляете конечную точку ("журнал изменений"), которую вы можете обрабатывать с помощью какого-либо плагина, например, переключая отображение на какой-то другой пост.

Когда-то это не работало должным образом с конечными точками, но я думаю, что теперь это как-то исправлено. Я не использовал это жестко, поэтому мой ответ пока только информативен.

Связанные с:

3
hakre

Привет @ Адам:

Как вы, наверное, знаете, все "сообщения" хранятся в одной таблице базы данных для "сообщений" , "страниц" и любые пользовательские типы сообщений.

Я упоминаю предыдущий, чтобы подчеркнуть, что все "записи" имеют поле post_parent available , и я успешно использовал его для создания parent-child взаимосвязь, например, между типом записи 'restaurant' и типом записи 'restaurant-location'.

Однако URL-адреса немного сложнее, и я фанат, когда дело доходит до Хорошо спроектированных URL-адресов , так что вы знаю, я бы посмотрел в это сильно.

Я реализовал код, чтобы сделать аналогично тому, что вы просите (для примера ресторана/местоположения), но он очень хрупкий и имеет потенциал для создавать нежелательные побочные эффекты с другими плагинами, поэтому я действительно боюсь опубликовать его здесь, и, по сути, причиняя людям больше проблем, чем помощи.

Хотя некоторые из более хардкорных разработчиков WordPress, которые часто trac и список wp-хакеров , похоже, не думают, что есть большая проблема с системой маршрутизации URL все остальные, кого я знаю, кто на самом деле пытался использовать его для любого другого шаблона, кроме ведения блогов, борются с ним и находят его в ярости. Вот почему я отправил этот тикет и надеюсь, что в ближайшем будущем у меня будет время для обсуждения:

В настоящее время использование хорошо продуманных URL-адресов слишком сложно и чревато опасностью, чтобы быть жизнеспособным вариантом. Поэтому в краткосрочной перспективе я действительно рекомендую придерживаться стандартного макета URL , пока у меня не будет достаточно свободного времени для его решения, или пока кто-то еще не улучшит систему маршрутизации URL-адресов WordPress или кто-то даже не примет меня на работу. почини это.

К сожалению Я знаю, что это был не тот ответ, который вы искали , но он честный и искренний.

0
MikeSchinkel

После завершения вышеизложенного ответа мне приходит в голову, что вы могли бы достичь того, чего хотите, более просто, о чем я сначала думал, используя ответ, написанный в этом вопросе:

Я знаю, что заголовок вопроса не будет означать для вас, что он будет уместным, но вопрос был по сути о типе "sub post" и связанных URL.

Извините, это не пришло мне в голову, пока я не разместил ответ выше.

0
MikeSchinkel

Я вернулся к этому проекту после того, как некоторое время не работал над ним, и вот что я получил:

так же, как с моими предыдущими примерами, где у меня есть:

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, чтобы попытаться остановить перенаправление, но пока безуспешно.

Любые предложения о том, что еще попробовать?

0
Adam Dempsey