У меня есть собственный тип поста портфолио (слизняк) в моей теме, и все работает хорошо, кроме одной вещи. Когда люди создают страницу с небольшим количеством портфолио, например: example.com/portfolio, тема думает, что я хочу использовать страницу архива с пользовательским типом записи, а не мою страницу, созданную в редакторе.
Могу ли я как-нибудь «зарезервировать» портфель слагов при сохранении страниц, чтобы быть уверенным, что он никогда не будет использован, возможно, переименован в страницу портфолио?
Мой проект использует методы, описанные в этом руководстве, вот конфликт, о котором я говорю:
«Помимо необходимости исправления кода, здесь есть еще одна загвоздка, заключающаяся в том, что вы не можете называть свой плагин страницы тем же, что и ваш пользовательский слаг типа сообщения. Думайте о своем пользовательском слаге типа сообщения как зарезервированном ключевом слове; заголовок вашей страницы совпадает с именем вашего слага типа поста, если ваш слаг страницы - это нечто иное. " - http://wp.tutsplus.com/tutorials/custom-post-type-pagination-chaining-method/
Спасибо за любой совет!
источник
Ответы:
Следующие 2 фильтра позволяют вам подключиться, когда WordPress проверяет слаг и находится в функции wp_unique_post_slug () в файле wp-includes / post.php.
Есть 2 фильтра, один для иерархических постов и один для неиерархических. Иерархический фильтр предоставляет идентификатор для родительского поста, поэтому, если $ post_parent равен 0, вы знаете, что это «базовый» пост.
Фильтры также передают $ post_type, если вы хотите добавить определенные типы записей в вашу логику.
Возвращая «true», вы говорите WordPress, что этот слаг плох, поэтому WordPress добавляет суффикс, как если бы вы пытались нам использовать название / слаг поста, который уже занят.
источник
Создайте страницу с фрагментом «портфолио» и сделайте ее «Приватной». Это будет скрыто от общественности при резервировании пули от дальнейшего использования.
источник
Именно с этой проблемой сталкивался при исследовании проблемы нумерации страниц. У нас есть домашняя страница новостей (slug "news"), и нумерация страниц не удалась ... попытки попасть на / news / page / 2 / всегда приводили к '404 - Not Found'.
Проблема, как оказалось, заключалась в том, что нашему пользовательскому типу новостей также был присвоен элемент «новости». При изменении последнего (например, на «news_archive») проблема была исправлена. Это оставило исходные URL-адреса новостей без изменений. Изменение блока новостей на главной странице также работало, но тогда все URL-адреса включали бы измененный фрагмент.
источник