@greencost

ACF options page + кириллица — ошибка «Извините, вам не разрешено просматривать эту страницу»?

Добрый день. Возникает странная ошибка при использовании acf pro и создании options sub page с названиями на кириллице.
В документации есть пример кода:

Вот такой

if( function_exists('acf_add_options_page') ) {
	
	acf_add_options_page(array(
		'page_title' 	=> 'Theme General Settings',
		'menu_title'	=> 'Theme Settings',
		'menu_slug' 	=> 'theme-general-settings',
		'capability'	=> 'edit_posts',
		'redirect'		=> false
	));
	
	acf_add_options_sub_page(array(
		'page_title' 	=> 'Theme Header Settings',
		'menu_title'	=> 'Header',
		'parent_slug'	=> 'theme-general-settings',
	));
	
	acf_add_options_sub_page(array(
		'page_title' 	=> 'Theme Footer Settings',
		'menu_title'	=> 'Footer',
		'parent_slug'	=> 'theme-general-settings',
	));
}



И всё работает отлично, но при попытке сменить 'menu title' у sub_page (именно у sub_page, на options_page всё норм) на любой, содержащий кириллицу (например - "Футер" вместо "Footer"), появляется ошибка "Извините, вам не разрешено просматривать эту страницу".

Не понимаю, с чем это может быть связано. WP чистый, из плагинов только acf.
  • Вопрос задан
  • 396 просмотров
Решения вопроса 1
Была такая же проблема. Она явно связана с парсингом get-параметров при смешивании кириллицы и латиницы.

Для решения, необходимо добавить "menu_slug" к массиву параметров acf_add_options_sub_page

Т.е. у нас должно получиться что-то вроде:

if( function_exists('acf_add_options_page') ) {
  
  acf_add_options_page(array(
    'page_title' => 'Настройки темы',
    'menu_title' => 'Настройки темы',
    'menu_slug'  => 'theme-general-settings',
    'capability' => 'edit_posts',
    'redirect'   => false
  ));
  
  acf_add_options_sub_page(array(
    'page_title' => 'Настройки шапки сайта',
    'menu_title' => 'Шапка,
    'parent_slug'=> 'theme-general-settings',
    'menu_slug'  => 'theme-general-header', // <= Добавить вот сюда
  ));
}


Если не добавлять 'menu_slug', то url редактирования sub_page получается /wp-admin/admin.php?page=acf-options-шапка и вылазит вышеуказанная ошибка.

При добавлении 'menu_slug', url становится вида /wp-admin/admin.php?page=theme-general-header, где theme-general-header - это и есть наш menu_slug.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ikonkov
@ikonkov
Может версия ACF кривая, вот 5.12.2 у меня и все как надо работает

6278e88b123c7943222980.png

6278e8931e81b483161335.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы