Intereting Posts
Может ли кто-нибудь уточнить разницу между archive- {posttype} .php, type- {posttype} и date.php? Переименование «Развернуть детали» в «Добавить медиа» Домашняя страница белого экрана после сервера миграции Захватить «когда пользователь входит в систему» ​​ URL-адрес категории WordPress перенаправляется на субдомен WordPress wp_loaded action hook Передайте атрибуты формы другому шаблону php в wordpress показать случайное изображение в цикле, если изображение не установлено плагин генерировал неожиданный вывод во время активации, но он пуст Будет ли мой сайт WordPress уязвимым для межсайтового сценария (XSS), если я разрешу теги img в области комментариев? Как использовать различные заголовки для разных страниц с помощью этого шаблона? woocommerce панихиды в теме Изменить формат сообщения с помощью настраиваемого поля Отображать продукты Woocommerce по нескольким атрибутам с помощью WP_Query Проблема с попыткой отобразить заголовок в сообщениях

Родитель для другого настраиваемого типа сообщений – файлы шаблонов не распознаются

У меня есть два пользовательских типа сообщений – 'gaming-consoles' и 'xbox-games' .

У меня также есть два настраиваемых шаблона для этих типов сообщений: single-gaming-consoles.php и single-xbox-games.php – которые отлично работали.

Я столкнулся с проблемой из-за того, что мне нужен следующий URL-адрес на моем сайте:

 website.com/gaming-consoles/xbox/ <--- Custom Post Type 'gaming-consoles' website.com/gaming-consoles/xbox/xbox-games/ <--- Custom Post Type 'xbox-games' 

Пользовательские типы сообщений не могут иметь другие типы пользовательских типов сообщений в качестве родителя.

Поэтому я использовал следующее решение, сделанное Janina, чтобы заставить его работать, и решил его.

 add_action('admin_menu', function() { remove_meta_box('pageparentdiv', 'xbox-games', 'normal');}); add_action('add_meta_boxes', function() { add_meta_box('chapter-parent', 'gaming-consoles', 'chapter_attributes_meta_box', 'xbox-games', 'side', 'high');}); function chapter_attributes_meta_box($post) { $post_type_object = get_post_type_object($post->post_type); if ( $post_type_object->hierarchical ) { $pages = wp_dropdown_pages(array('post_type' => 'gaming-consoles', 'selected' => $post->post_parent, 'name' => 'parent_id', 'show_option_none' => __('(no parent)'), 'sort_column'=> 'menu_order, post_title', 'echo' => 0)); if ( ! empty($pages) ) { echo $pages; } // end empty pages check } // end hierarchical check. } 

Я также использовал это решение Pablo Vallejo для удаления Slug /gaming-consoles/ – поэтому URL-адреса становятся следующими:

 website.com/xbox/ <--- Custom Post Type 'gaming-consoles' website.com/xbox/xbox-games/ <--- Custom Post Type 'xbox-games' 

Теперь пользовательская страница website.com/xbox/ работает, а website.com/xbox/xbox-games/ – нет . Я получаю index.php вместо содержимого страницы.

single-xbox-games.php начинается с:

 <?php /* Template Name: Xbox-games Template */ ?> 

Как я уже сказал, он работал до того, как я добавил родительскую функциональность.

Согласно иерархии шаблонов кажется, что WordPress ищет другое имя, чем single-xbox-games.php .

Кто-нибудь понял, как отобразить шаблон для 'xbox-games' ?