Intereting Posts
Хотите узнать, кто является пользователем Admin / User Архив категорий по годам с поддержкой permalink / category / YYYY Как создать шаблон для категории детей? Построение индексной страницы из настраиваемых полей Передовая практика представления формы плагина Где добавить URL-адрес другого сайта для нашего сообщения в WordPress Импорт XML-файлов для вложений или изображений Как найти сообщение с использованием XML-RPC без знания идентификатора Запрос базы данных отлично работает вне WordPress Как добавить пользовательские поля на страницу всех пользователей Вывод показывает страницу вместо списка сообщений блога Загрузка изображений в медиа-библиотеку через wp_handle_sideload () не выполняется WP_Query Сортировка сообщений по месяцам … эффект временной шкалы Использование Ajax с файлом класса Что такое хороший плагин для создания шаблона, который можно использовать повторно для создания нескольких объектов на одной странице?

Пользовательская дочерняя страница типа страницы 404

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

Я использую плагин CPT UI и создал CPT с названием «курсы» со следующими настройками:

register_post_type('courses', array( 'label' => 'Courses', 'description' => '', 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'capability_type' => 'post', 'map_meta_cap' => true, 'hierarchical' => true, 'rewrite' => array('slug' => 'courses', 'with_front' => true), 'query_var' => true, 'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes','post-formats'), 'labels' => array ( 'name' => 'Courses', 'singular_name' => 'Course', 'menu_name' => 'Courses', 'add_new' => 'Add Course', 'add_new_item' => 'Add New Course', 'edit' => 'Edit', 'edit_item' => 'Edit Course', 'new_item' => 'New Course', 'view' => 'View Course', 'view_item' => 'View Course', 'search_items' => 'Search Courses', 'not_found' => 'No Courses Found', 'not_found_in_trash' => 'No Courses Found in Trash', 'parent' => 'Parent Course', ) 

Затем я создал страницу под названием «курсы» и специализированный шаблон страницы «page-courses.php» и шаблон под названием «single-courses.php» для любых сообщений в пользовательском типе сообщений курсов. До сих пор все работало правильно.

Затем я создал новую страницу с путём «вопросов-проверки» и «курсов», поскольку это родитель. Именно эта страница дает 404.

Я попробовал следующее, чтобы заставить его работать:

  1. В admin: настройки> permalinks и flush_rewrite_rules(); добавлены flush_rewrite_rules(); to functions.php и обновил страницу «вопросы-проверка»
  2. Установил плагин «переписать правила» и сбросил правила перезаписи
  3. Создал новый пользовательский тип сообщения, используя интерфейс CPT.

Используя один или несколько из вышеперечисленных 3 исправлений, действительно исправьте 404 в вопросе-checkout. Тем не менее, я затем получаю 404 постов на странице курсов, например / курсы / пост-титул.

Независимо от того, насколько сильно я стараюсь, это тот или другой, который работает – я не могу получить оба сообщения о курсах и дочерние страницы без 404.

Строго говоря, я знаю, что страницы не должны иметь то же имя, что и пользовательский тип сообщения, поэтому я подозреваю, что это причина 404. Мой следующий подход заключался в том, чтобы удалить страницу «курсы», а его «вопросы-проверка» ребенка – , Затем я изменил 'page-courses.php' на 'archive-courses.php' и установил 'has_archive' в 'true'.

Итак, у меня есть рабочие страницы архива и уникальные страницы для моего пользовательского типа сообщений «курсы». Но как я могу добавить страницу под названием «вопросы-checkout» с URL / курсами / вопросы-checkout?

Я использую WordPress 3.9.1 multisite.

Когда вы регистрируете новый тип сообщения в первый раз, вам нужно посетить Settings -> Permalinks, чтобы WordPress мог установить для него правила постоянной ссылки. Вам даже не нужно удалять сохранение, достаточно посещать страницу.

С большой помощью от @ Eric Holmes, я думаю, мы нашли решение.

Основная идея заключается в том, чтобы добавить собственные правила перезаписи для создания структуры permalink, которой я пользуюсь.

Я добавил это к моим functions.php:

 function add_rewrite_rules(){ global $wp; $wp->add_query_var( 'fakepage' ); $parentpage = 'ADD THE TOP LEVEL PAGE'S POST ID HERE'; add_rewrite_rule('courses/checkout/([^/]*)','index.php?page_id='.$parentpage.'&fakepage=$matches[1]','top'); } add_action('init','add_rewrite_rules'); 

Затем в page-pagename.php (в моем случае, page-courses.php):

 if(isset($wp_query->query_vars['fakepage'])){ $fakepage = $wp_query->query_vars['fakepage']; if($fakepage=='questions'){ //do whatever } else { //do whatever } }