Вам должна быть доступна глобальная переменная WP $pagename
, я только что попробовал с той же самой настройкой, которую вы указали.
$pagename
определено в файле wp-includes / theme.php внутриget_page_template()
РЕДАКТИРОВАТЬ:
* функция *1005*, которая, конечно же, вызывается перед анализом файлов вашей страницы, поэтому она доступна в любой точке ваших шаблонов для страниц.1011 *
Хотя это и не задокументировано, $pagename
var устанавливается только при использовании постоянных ссылок.Я полагаю, это потому, что если вы их не используете, WP не нуждается в слаге страницы, поэтому он не устанавливает его.
$pagename
не устанавливается, еслиВы используете страницу в качестве статической главной страницы.
Это код внутри /wp-includes/theme.php, который использует решение, которое вы указали, когда $pagename
не можетбыть установлен:
$pagename = get_query_var('pagename');
if ( !$pagename && $id > 0 ) {
// If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object
$post = $wp_query->get_queried_object();
$pagename = $post->post_name;
}