Существует более ранняя публикация с похожим названием, но она не подходит для WordPress 3.3, и это важно, так как 3.3 интересно рекламирует: «Используйте структуру постоянных ссылок для имени без потери производительности»
Проблема с Wordpress 3.2 и более ранними версиями заключалась в том, что сначала он просматривал имена страниц, а затем 404. Сначала он не проверял произвольные типы записей. 3.3, с другой стороны, должен смотреть типы сообщений, затем страницы и, наконец, 404 (как он рекламирует эту функцию). Это подразумевает, что пользовательские типы записей без слагов должны быть простыми , если они не post_type=post
где-то жестко кодируют .
Я пока не могу найти конкретное решение 3.3.
Вопрос : Как я могу определить постоянную ссылку struct "/% postname% /" для любого заданного пользовательского типа записи "xyz"?
Спасибо.
источник
Ответы:
Это нелегко сделать в WP 3.3, если вы не обманываете правила перезаписи, чтобы быть в правильном месте, и заставляете wp_rewrite думать, что подробные правила используются во внешнем интерфейсе. Класс ниже работает.
источник
Святые ключи от машины!
Я думаю, что это работает. Это почти работает, это очень просто, только одна строка:PS Если вы попробуете это дома, после добавления этой одной строки перейдите в «Настройки» -> «Постоянные ссылки» и «Сохранить изменения», она обновит постоянные ссылки.
Я читал
register_post_type()
исходный код WP и нашел строку:Само собой разумеется, но без пули я решил, что это должно работать,
и это сделало. Даже редактирование постоянной ссылки под заголовком в редакторе работает правильно!Обновление: это разрывает постоянные ссылки на страницы, обратно на чертежную доску ...
источник
Ответ prettyboymp - почти то же самое, что я получил вчера, но я не доволен этим. Ответ prettyboymp имеет один недостаток, он не работает, когда /% postname% / используется одновременно для нескольких типов записей.
Вот мой ответ, который также смотрит на текущую структуру и создает массив типов записей для отката. В этом тоже есть один недостаток: если два типа записей имеют одинаковый слаг и оба имеют /% postname% /, то это показывает оба.
источник
Я создал решение, и я не мог найти проблему с ним. Пожалуйста, попробуйте и скажите мне, если вы обнаружите проблему
Измените «yemek» с вашим именем типа сообщения.
источник
Эта ссылка должна ответить на ваш вопрос:
http://ottopress.com/2011/how-the-postname-permalinks-in-wordpress-3-3-work/
источник
Самый чистый ответ, который я мог бы придумать для этого (я создаю плагин, который действительно нуждается в пользовательском типе поста без какого-либо начального слага), состоит в том, чтобы использовать пользовательский шаблон страницы вместо использования пользовательского типа поста.
Таким образом, ваш «пользовательский тип записи» может иметь URL-адреса, такие как / что угодно, не беспокоясь о переходе на страницу или постоянные ссылки на пост.
Чтобы сделать это, я сделал следующее:
Это позволило мне:
Вытащите список страниц, которые используют шаблон страницы, используя WP_Query
Добавить специальную обработку, подключив add_meta_boxes для хранения моих пользовательских данных
Добавьте мой пользовательский шаблон к отображаемым, отфильтровав page_attributes_dropdown_pages_args, theme_page_templates, wp_insert_post_data и template_include. См. Этот пост о добавлении шаблонов страниц в плагин
Вниз стороны
Конечно, хотя это не топает ссылки на страницы и не публикует ссылки, у него есть несколько очевидных недостатков.
Нет архива У вас не будет архива (если вы этого хотите), хотя это можно решить, создав другой шаблон страницы, чтобы нарисовать архив всех страниц, используя ваш собственный шаблон.
Управляется в страницах. Вы не можете получить приятную левую навигацию в админке, которая группирует все типы записей вместе.
Это может быть частично решено добавлением фильтра в список страниц (чтобы можно было фильтровать по используемому шаблону страницы), показом любого шаблона страницы, используемого в новом столбце, и т. Д.
При этом я хотел чего-то такого, что не заставляло бы пользователей задумываться, почему они создали новую пользовательскую страницу, и обнаружило, что они либо больше не могут переходить на обычные страницы, либо новая пользовательская страница вызывает исчезновение существующей страницы на их сайте.
Я знаю, что это не настоящее решение, но это альтернатива, которая отлично подходит для моих нужд.
источник