Intereting Posts
Я хочу загрузить в новый класс, но только если текущая страница является single-movies.php Установите роль абонента с возможностью «upload_file» на определенных страницах Как работает страница блога в WordPress: страница блога возвращает идентификатор первого сообщения Как изменить, откуда плагин извлекает обновления? Почему массовые обновления для post_content отображаются в интерфейсе, но не на экране редактирования? Связать нескольких пользователей с настраиваемым типом сообщения Как сбросить мой footer.php в исходное состояние? (тема: Оригами) the_permalink () не работает Как получить результат comments_number () как строку, а не распечатывать ее? Архив CPT pre_get_posts не работает? Фильтрация пользовательского типа post post в раскрывающемся меню администратора? Создайте пул для пользовательского типа сообщения Под двумя родительскими страницами с WPML альтернатива wp_link_pages (), которая показывает только ссылку на последнюю страницу Функция в алфавитном порядке сортирует пользовательские типы сообщений, создавая дубликаты Как изменить целевую страницу URL?

Создать правило перезаписи для подстраницы

Я хочу добавить динамическую страницу для каждой страницы с URL-страницей «/ team».

Как мне настроить выражение «add_rewrite_rule» регулярное выражение, чтобы позволить мне это?

Пример:

path: http://page.com/business/team rewrite: http://page.com/index.php?department-team=business path: http://page.com/hr/team rewrite: http://page.com/index.php?department-team=hr 

Код, с которым я работаю:

 add_action('query_vars', 'department_team_add_query_vars'); add_action('init', 'department_team_add_rewrite_rules'); add_filter('template_include', 'department_team_template_include'); function department_team_add_query_vars($vars) { $vars[] = 'department-team'; return $vars; } function department_team_add_rewrite_rules() { // do I need this? //add_rewrite_tag('%department-team%', '([^&]+)'); // rewrite url to add_rewrite_rule( '/([^/]*)/team', 'index.php?department-team=$matches[1]', 'top' ); } function department_team_template_include($template) { global $wp_query; $new_template = ''; var_dump(array_key_exists('department-team', $wp_query->query_vars)); var_dump($wp_query->query_vars); if (array_key_exists('department-team', $wp_query->query_vars)) { switch ($wp_query->query_vars['department-team']) { case 'team': $new_template = locate_template(['department_team.php']); break; } if ($new_template != '') { var_dump('aaa'); die(); return $new_template; } else { $wp_query->set_404(); status_header(404); return get_404_template(); } } return $template; } 

Solutions Collecting From Web of "Создать правило перезаписи для подстраницы"

add_rewrite_endpoint этого используйте add_rewrite_endpoint , он генерирует для вас правила.

 add_rewrite_endpoint( 'team', EP_PAGES ); 

Я делаю что-то подобное. У меня есть страница (country_tc), которая использует настраиваемый шаблон страницы, который либо динамически генерирует информацию для запрашиваемой страны, либо ряд подстраниц для страны, например

/country/Egypt ( index.php? pagename = country & countrytc = egypt )

/country/egypt/safety ( index.php? pagename = country & countrytc = egypt / safety )

Я использую page_rewrite_rules для перезаписи. У меня не было времени проверить ваш код, так вот как я это сделаю:

В плагине функций сайта:

 // allow WP to store querystring attribs for use in our pages function tc_query_vars_filter($vars) { $vars[] = 'department-team'; $vars[] .= 'another-var'; return $vars; } add_filter( 'query_vars', 'tc_query_vars_filter' ); function tc_rewrite_rules($rules) { global $wp_rewrite; $tc_rule = array( // working example from my site 'country/(.+)/?' => 'index.php?pagename=' . 'country' . '&countrytc=$matches[1]', // YOUR rule (not tested) '/([^/]*)/team', 'index.php?pagename=YOURPAGENAME&department-team=$matches[1]' ); return array_merge($tc_rule, $rules); } add_filter('page_rewrite_rules', 'tc_rewrite_rules'); 

ПОСЛЕ АКТИВИРОВАНИЯ PLUGIN ВАМ НЕОБХОДИМО СОХРАНЯТЬ ПЕРМАЛИНКИ НА ПЛАТЕЖЕ – ЭТО БУДЕТ РАСШИРИТЬ / ОБНОВИТЬ ВАШИ ПРАВИЛА РЕКВИЗИТА

Сделайте остальную часть кода на своей странице, используя:

get_query_var('department-team')get_query_var('department-team') ли вы, как требуется.