Я использую некоторую переписывание URL-адресов поверх перезаписи URL-адресов, которую Wordpress делает изначально.
Основная идея заключается в том, что я использую страницу категории с адресом, который выглядит так, как будто он принадлежит чему-то другому, поэтому /blog/type/kids является истинной категорией в WP. Я переписываю это с файлом .htaccess в /kids/, чтобы категория выглядела так, как будто это на самом деле страница с именем /kids/programs с этим кодом в папке kids:
RewriteEngine on
RewriteRule ^programs$ /blog/type/kids/ [P]
Это происходит в двух разных местах на сайте, но оба загружают одну и ту же страницу WP за кулисами. Это все работает нормально.
Что мне нужно сделать сейчас, так это установить переменную в зависимости от того, откуда она загружается, чтобы гарантировать, что навигация выделяет правильный раздел сайта и показывает правильную вложенную навигацию. Проблема в том, что я не могу получить доступ к новому, переписанному URL-адресу, который видит пользователь.
В идеале я ищу что-то вроде этого:
if(strpos($_SERVER['PHP_SELF'],'kids//programs')) {
$top_nav_item_id = 'kids';
} else {
$top_nav_item_id = 'programs';
$subnav_item_id = 'kids';
}
PHP_SELF разрешается в /blog/index.php, а REQUEST_URI показывает /blog/type/kids. Так что ни один из них не показывает мне местоположение /kids/programs, которое действительно отображается.
Любые идеи, как это получить? Может быть, у WP есть встроенный тег для этого?
Ваше здоровье!