Как настроить rewrite rule для WordPress?
На сайте есть кастомный тип записей team, в нем есть записи.
Нужно создать дополнительную страницу, которая использует данные из кастомного типа,
где post slug = GET-параметр в новом пути
Файл-обработчик страницы single-vcard.php, лежит в корне теме.
Путь
site.ru/vcard/ivan-ivanov/
vcard – статическая часть url
ivan-ivanov – GET-параметр
После добавления кода в functions.php и обновления постоянных ссылок через админку не передаются значения GET-параметра employee_id.
Вопросы:
1. Как сократить путь в add_rewrite_rule(), чтобы не писать путь от корня сайта?
2. Почему не передаются значения GET-параметра employee_id ?
3. Почему не подгружаются стандартные функции WordPress в подключаемом файле?
Нужно принудительно require wp_core.php прописать?
Код
add_action('init', function(){ add_rewrite_rule( '^vcard/([a-zA-Z0-9-_]+)/?', 'wp-content/themes/main_theme/single-vcard.php?employee_id=$matches[1]', 'top' ); }); function prefix_register_query_var( $vars ) { $vars[] = 'employee_id'; return $vars; } add_filter( 'query_vars', 'prefix_register_query_var' ); |
add_action('init', function(){ add_rewrite_rule( '^vcard/([a-zA-Z0-9-_]+)/?', 'wp-content/themes/main_theme/single-vcard.php?employee_id=$matches[1]', 'top' ); }); function prefix_register_query_var( $vars ) { $vars[] = 'employee_id'; return $vars; } add_filter( 'query_vars', 'prefix_register_query_var' );
Результат ($_GET)
Дополнительно:
ЕМНИП оно и так должно работать, если vcard таки кастомный тип поста и при обычных правилах рерайта, правда будет получаться не emplyee_id, а post_slug в глобальном WP_Query, и выполняться single-{post_name}.php при наличии
а функции не подключаются потому что запрос идёт мимо WP
Смена названия файла поможет?
При rewrite нужно подключать wp core? Не будет ли зацикливания?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
