Intereting Posts
Получить конечный пункт назначения после перенаправления WP_Http (WordPress) Как проверить, имеет ли виджет автоматический заголовок Выходы функции wp_head после <head> Несколько сообщений, эхо-URL (путь к изображению) Как я могу подключиться к полю заголовка постредактора, чтобы изменить HTML? является ли wpdb-> replace () уже дезинфицированным? Создание навигационного меню Как перенаправить пользователей без разрешения на просмотр содержимого на пользовательскую страницу? Страница категории с сообщениями из всех категорий Как получить обработчик объемных операций для отображения простого «Hello World»? Нет возможности разрешить поисковым системам индексировать мой сайт в WP 4.3 Как я могу добавить классы HTML для текущей таксономии / иерархии терминов на мои страницы, чтобы упростить стили? Посещение веб-страницы ТОЛЬКО после посещения другой страницы. Возможное? Смещение WP_Query отрицательным 1 Правильный способ проверки nonce (безопасность) с использованием старого API-интерфейсов опций

Правило перезаписи типа публикации, чтобы указать на пользовательскую страницу / шаблон

У меня есть пользовательский тип / таксономия, что он работает нормально прямо сейчас.

Я написал некоторые пользовательские правила перезаписи для создания URL-адресов, таких как:
domain.tld/postTypeName/parentTaxonomy/childTaxonomy/postSlug

 function custom_rewrite_rules($rules) { $newrules = array(); $newrules['lessons/(.+)/(.+)/(.+)/?$'] = 'index.php?lessons=$matches[3]'; $newrules['lessons/(.+)/?$'] = 'index.php?level=$matches[1]'; //$newrules['lessons/?$'] = 'index.php?post_type=lessons'; return array_merge($newrules, $rules); } add_filter('rewrite_rules_array', 'custom_rewrite_rules'); 

То, что я пытаюсь сделать, заключается в создании нового правила для создания URL-адреса:
domain.tld/postTypeName/parentTaxonomy/home

"home" это не часть пользовательского типа сообщения или таксономии, и я хочу использовать уже созданную страницу ( lessonhome ) с настраиваемым шаблоном для этого URL- lessonhome .

Добавлен запрос Var:

 function prefix_register_query_var($vars) { $vars[] = 'home'; return $vars; } add_filter('query_vars', 'prefix_register_query_var'); 

Добавлено перенаправление шаблона и фильтра:

 function prefix_url_rewrite_templates() { if (get_query_var('home') && is_singular('lessons')) { add_filter('template_include', function() { return get_template_directory() . '/custom-page-template.php'; }); } } add_action('template_redirect', 'prefix_url_rewrite_templates'); 

Добавлено новое правило Rewrite:

 $newrules['lessons/(.+)/home/?$'] = 'index.php?post_type=page&name=lessonhome&home=yes'; 

И метод custom_rewrite_rules изменился на:

 function custom_rewrite_rules($rules) { $newrules = array(); $newrules['lessons/(.+)/(.+)/(.+)/?$'] = 'index.php?lessons=$matches[3]'; $newrules['lessons/(.+)/home/?$'] = 'index.php?post_type=page&name=lessonhome&home=yes'; $newrules['lessons/(.+)/?$'] = 'index.php?level=$matches[1]'; //$newrules['lessons/?$'] = 'index.php?post_type=lessons'; return array_merge($newrules, $rules); } add_filter('rewrite_rules_array', 'custom_rewrite_rules'); 

Но он не работает – он перенаправляет меня на эту страницу: domain.tld/lessonhome
Что я делаю неправильно / отсутствует здесь?