Я бы использовал для этого встроенные в PHP функции синтаксического анализа пути.
Используйте parse_url () , чтобы обрезать запрос и получить только часть пути:
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
(parse_url используется для разбора полных URL-адресов, но для этого он должен работать нормально. Второй параметр доступен начиная с PHP 5.1.2.)
Затем используйте basename () , чтобы извлечь имя файла:
$pagename = basename($path, ".php"); // Will remove `.php` suffix
Дополнительные тысячи
В зависимости от структуры вашего сайта, этот метод не обязательно будет использовать для уникальных идентификаторов. Что если about
является подстраницей в /bp
и /bc
? (Если это возможно в Wordpress.) У вас будет две разные страницы с одинаковым идентификатором. В этом случае вы можете использовать полный путь в качестве идентификатора, преобразуя косую черту в подчеркивание:
<body id="projects_bp_about">
также из собственного опыта, я рекомендую использовать для этого классы, чтобы избежать коллизий идентификаторов, если страница названа как уже существующие элементы на странице!
<body class="projects_bp_about">