Intereting Posts
Пользовательский тип поиска по почте с пустым URL-адресом Не показывать детей категории Пользовательский фильтр в admin редактировать пользовательский тип сообщения, отвечающий с недопустимым типом сообщения? Как перечислить термины по первой букве, как в то, что тогда A и B Запросить настраиваемые типы сообщений результаты поиска формы – динамическое добавление адресов электронной почты в контактную форму 7 404 Issue w / Custom Post Type – использование Meta для Permalink rewrite Добавление запроса к URL-адресу изображения при нажатии «вставить в сообщение»? Добавление шаблона в панель атрибутов страницы для сообщений и страниц? Передача переменных через структуру контировки Как кодировать почтовый контент как JSON? Запросить базу данных после включения get_header () Шаблон категории, не отображающий все форматы сообщений изменение заголовка (на панели управления) для разных экземпляров виджета Форма поиска CPT с таксономическим фильтром и

Корректировка перезаписи URL-адресов для пользовательского типа сообщения приводит к тому, что шаблон возвращается к index.php

У меня есть настраиваемый тип сообщения с переписыванием URL-ссылок на URL, который, похоже, работает, если он использует / mynews / stories / YYYY / mm / story-name, но если я изменил «мм» на первые 3 буквы месяца (например, Jan, Feb , Mar и т. Д.), Иерархия шаблонов ломается, и она использует index.php.

Мой код здесь http://pastebin.com/RS1DMbB6

Я поместил все это в файл functions.php, так как мне не разрешено добавлять плагины.

Поэтому в тот момент, когда я изменяюсь от% monthnum% до% month%, переписывает URL-адрес, но используется неправильный шаблон. Отладка внутри ссылки post_type_link и template_include говорит мне, что is_single имеет значение NULL, и, похоже, шаблон переходит к index.php вместо single-story.php или даже single.php.

Любые идеи, почему это, казалось бы, простое изменение нарушает иерархию шаблонов?

Проблема в том, что %month% не является признанным тегом rewrite. Если вы добавите тег в действие init и обновите флажки, запрос будет успешным.

 function register_story_post_type(){ // your post type registration stuff here, and then… add_rewrite_tag( '%month%','([^&]+)' ); } add_action('init','register_story_post_type'); 

Существует также около сотни способов, которыми вы могли бы очистить этот код, но ни один из них не относится к вашей проблеме здесь. Одна вещь, которую я рекомендую, заключается в том, чтобы не манипулировать переписыванием глобалов напрямую, это плохая привычка, которая может вызвать у вас проблемы, если основной код изменится. Всегда используйте API и избегайте глобальных привязок. Ваш тег перезаписи story добавляется, когда вы регистрируете свой тип сообщения, а структура перезаписи может быть определена непосредственно в вашем регистрационном коде типа post, используя аргумент rewrite .