amit
  • 0
Учитель

Написание пользовательских правил перезаписи, включающих категорию для пользовательских типов записей?

  • 0

Я регистрирую пользовательский тип сообщения и в массиве перезаписи пытаюсь сделать что-то вроде этого:

'rewrite' => array('slug' => "explore/resources/".$CATEGORY, 'with_front' => false)

Я хочу, чтобы правило «динамически» каким-то образом получало название категории сообщения. Я также пытался использовать %category% там, но это тоже не работает. Мне нужно, чтобы URL-адрес сообщения представлял весь путь/маршрут к нему. Любые идеи о том, как этого добиться?

ОБНОВЛЕНИЕ: Вот еще уточнение:

У меня есть пользовательский тип сообщений ‘ resources ‘, и эти сообщения имеют несколько разных категорий, таких как ‘ forms ‘, ‘ mp3 ‘ и т. д. теперь эта область ресурсов на сайте находится в другом разделе (это страница с настраиваемым циклом для этих настраиваемых сообщений), который под названием Исследовать. Чего я хочу добиться, так это:

domain.com/Explore/Resources/Категория-ресурса/Имя-ресурса

или

domian.com/explore/resources/forms/production-form-1

Мое текущее правило перезаписи register_post_type() :

'rewrite' => array('slug' => "explore/resources", 'with_front' => false) .

Спасибо!

Share
  1. @Amit: Непонятно, что вам нужно. Я не уверен, что вы имеете в виду, когда говорите «динамически получить название категории сообщений каким-то образом». Не могли бы вы объяснить более подробно? Кроме того, не могли бы вы сообщить нам, какой у вас пользовательский тип записи, и привести несколько примеров URL-адресов, которые вы хотели бы, чтобы ваша система создавала?

    • 0
    • @Mike, у меня есть собственный тип сообщений «ресурсы», и эти сообщения имеют несколько разных категорий, таких как «формы», «mp3» и т. д., теперь эта область ресурсов на сайте находится в другом разделе (кто является страницей с пользовательским циклом для эти пользовательские сообщения), который называется Explore. чего я хочу добиться, так это domain.com/Explore/Resources/Resource-Category/Resource-Name или domian.com/explore/resources/forms/production-form-1. мое текущее правило перезаписи (в register_post_type()) — «rewrite» => array («slug» => «explore/resources», «with_front» => false). Спасибо за быстрый ответ!

      • 0
    • Мне придется провести некоторое исследование по этому вопросу, предполагая, что кто-то другой не ответит на него правильно, прежде чем я это сделаю.

      • 0
    • @Mike, я только что видел переписку в списке рассылки о таксономиях, пользовательских сообщениях и переписывании, а также ваше предложение trac о новом контроллере, я думаю, что моя проблема похожа на то, что описано там, так что мне просто придется подождать некоторое время. более новая, более подходящая реализация.

      • 0
    • Есть ли шанс, что вы могли бы каким-то образом сделать свою базу данных WordPress доступной, чтобы я мог загрузить ее и не создавать заново ваши данные, чтобы проверить это? Вы можете опубликовать файл дампа SQL как частный список на gist.github.com…

      • 0
    • попробовал, и это не позволяет мне добавить %category%, мои типы сообщений используют его и не являются иерархическими.

      • 0
    • Вы уверены, что зарегистрировали категории для типа сообщения? Мой плагин работает только с категориями, а не с другими иерархическими таксономиями.

      • 0
    • Знаете, ваш вопрос/ответ заставил меня перепроверить код, и вы правы, там была ошибка. Я сожалею о том, что. Категории должны работать на вас, используя мой плагин сейчас.

      • 0
    • спасибо, эта проблема исправлена, но теперь я думаю, что нашел другую ошибку, и она не позволяет мне делать что-то вроде (только) /%category%/%resource%, вместо этого она добавляется перед %post_type%/, поэтому она заканчивается быть /%post_type%/%category%/%resource%.

      • 0
    • Нет, это намеренно. Это происходит только в том случае, если ваша постоянная структура отражает постоянную структуру поста. Если ваша пользовательская постоянная структура такая же, как сообщения, все ломается. WordPress сопоставляет все с вашим пользовательским типом сообщений, а не с сообщениями. Они должны как-то отличаться.

      • 0
  2. Вы можете использовать мой плагин:

    http://wordpress.org/extend/plugins/custom-post-permalinks/

    Это будет работать, только если это неиерархический тип записи.

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

    • Чтобы получить категорию в URL-адресе, вам нужно подключиться к'post_type_link'
    • Вам также нужно подключиться 'parse_request', чтобы убедиться, что тип сообщения распознан.
    • 0

Оставить ответ

You must login to add an answer.