Задать вопрос
@FoxAlliance

Как вывести ACF локальные поля (acf_add_local_field_group) на кастомную страницу в админке?

Суть вопроса в том что есть поля созданные в плагине ACF pro (Advanced Custom Fields) которые экспортируются в код PHP через настройки плагина и помещаются в functions.php и собственно отключается и удаляется сам плагин ACF, с полями для страниц и постов все понятно но вот как вывести и добавить поля в страницу настроек (options page) не совсем понятно, после выключения плагина функция acf_add_options_page по понятным нам причинам перестает работать соответственно страница настроек пропадает из меню.
Пробовал добавлять кастомную страницу ( add_menu_page() ) и подстраницу ( add_submenu_page() ) с теми же названиями и slug что и в параметрах acf_add_options_page но поля acf там не появляются.

Вот пример добавленных данных в functions.php
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'		=> true
	));
	
	acf_add_options_sub_page(array(
		'page_title' 	=> 'Theme Header Settings',
		'menu_title'	=> 'Настойки Шапки (header)',
		'menu_slug' 	=> 'Header',
		'parent_slug'	=> 'theme-general-settings',
	));
	
}

if( function_exists('acf_add_local_field_group') ):

acf_add_local_field_group(array(
	'key' => 'group_5b62f2136c5a4',
	'title' => 'Настройки сайта',
	'fields' => array(
		array(
			'key' => 'field_5c1565d1104b1',
			'label' => 'Лого и тексты',
			'name' => '',
			'type' => 'tab',
			'instructions' => '',
			'required' => 0,
			'conditional_logic' => 0,
			'wrapper' => array(
				'width' => '',
				'class' => '',
				'id' => '',
			),
			'placement' => 'top',
			'endpoint' => 0,
		),
	),
	'location' => array(
		array(
			array(
				'param' => 'options_page',
				'operator' => '==',
				'value' => 'Header',
			),
		),
	),
	'menu_order' => 0,
	'position' => 'normal',
	'style' => 'default',
	'label_placement' => 'top',
	'instruction_placement' => 'label',
	'hide_on_screen' => '',
	'active' => true,
	'description' => '',
));

endif;

Поясните с примером как решить задачу...
  • Вопрос задан
  • 1203 просмотра
Подписаться 2 Сложный 2 комментария
Пригласить эксперта
Ответы на вопрос 1
mihdan
@mihdan
WordPress-евангелист, ведущий РНР - разработчик
После переноса полей из админки в РНР код рекомендую отключить GUI, а не деактивировать/удалять плагин. Для этого есть хук:

add_filter( 'acf/settings/show_admin', '__return_false' );


Более подробно я расписал у себя в посте.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы