Php WP-高级自定义字段:acf_添加_选项_页面()不存在

Php WP-高级自定义字段:acf_添加_选项_页面()不存在,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,我正在尝试在WP中设置带有高级自定义字段的选项页面 我在functions.php文件中有什么: if( function_exists('acf_add_options_page') ) { acf_add_options_page(); acf_add_options_sub_page('General'); acf_add_options_sub_page('Header'); acf_add_options_sub_page('Footer'); } 问题是函数\u存在('acf

我正在尝试在WP中设置带有高级自定义字段的选项页面

我在
functions.php
文件中有什么:

if( function_exists('acf_add_options_page') ) {

acf_add_options_page();

acf_add_options_sub_page('General');
acf_add_options_sub_page('Header');
acf_add_options_sub_page('Footer');

}
问题是
函数\u存在('acf\u添加选项\u页面')
返回
false

似乎该功能不存在,但我使用的是最新版本的ACF


当我尝试使用
acf\u add\u options\u page()时

我得到以下
未捕获错误:调用未定义的函数acf\u add\u options\u page()


当我避免使用
acf\u add\u options\u page()时,仅使用
acf\u添加选项\u子页面()

我收到以下警告



p.s.我正在
函数上使用钩子(尝试使用init、加载的插件和admin_init)加载函数。php
加载函数:

add_action('init', 'my_init_function');

    function my_init_function() {

    if( function_exists('acf_add_options_page') ) {

        acf_add_options_page();

        acf_add_options_sub_page('General');
        acf_add_options_sub_page('Header');
        acf_add_options_sub_page('Footer');


    }

    }

尝试不添加任何操作。只要做:

if( function_exists('acf_add_options_page') ) {

acf_add_options_page(array(
    'page_title'    => 'Theme Settings',
    'menu_title'    => 'Theme Settings',
    'menu_slug'     => 'theme-general-settings',
    'capability'    => 'edit_posts',
    'redirect'      => true,
    'icon_url'      => 'dashicons-screenoptions',
    'position'      => 22
));

acf_add_options_sub_page(array(
    'page_title'    => 'General',
    'menu_title'    => 'General',
    'parent_slug'   => 'theme-general-settings',
));
...
}

以下是我如何让它工作的:

if( function_exists('acf_add_options_page') ) {
 acf_add_options_page(array(
  'page_title'  => 'Header Settings',
  'menu_title'  => 'Header',
  'menu_slug'   => 'header-settings'
 ));
acf_add_options_page(array(
  'page_title'  => 'General Settings',
  'menu_title'  => 'General',
  'menu_slug'   => 'general-settings'
 ));
acf_add_options_page(array(
  'page_title'  => 'Footer Settings',
  'menu_title'  => 'Footer',
  'menu_slug'   => 'footer-settings'
 ));
}

我有一个类似的问题,但我运行的代码作为一个必须使用的插件的一部分

问题是acf插件是在mu插件之后加载的,因此该函数还不存在

我使用了
plugins\u loaded
操作在所有插件加载后立即运行它

这是我的密码:

// Add Options Page
function add_my_options_page() {
  if( function_exists('acf_add_options_page') ) {
    acf_add_options_page();
  }
}
add_action( 'plugins_loaded', 'add_my_options_page' );

您好,请尝试此
$parent['menu\u slug']

if( function_exists('acf_add_options_page') ) {

    $parent = acf_add_options_page(array(
        'page_title'    => 'Theme General Settings',
        'menu_title'    => 'General',
        'menu_slug'     => 'theme-general-settings',
        'capability'    => 'edit_posts',
        'redirect'  => false,
    ));

    acf_add_options_sub_page(array(
        'page_title'    => 'Header',
        'menu_title'    => 'Header',
        'parent_slug'   => $parent['menu_slug'],
        'capability'    => 'edit_posts',
        'redirect'  => false,
    ));

    acf_add_options_sub_page(array(
        'page_title'    => 'Footer',
        'menu_title'    => 'Footer',
        'parent_slug'   => $parent['menu_slug'],
        'capability'    => 'edit_posts',
        'redirect'  => false,
    ));


}

您的主题的function.php是否可能在实际ACF扩展之前加载?您的functio_是存在于钩子中还是直接存在于function.php中?如果是这样,你有没有试过像这样在hook中移动它:我正在使用一个hook,尝试init和admin_init,一切都是可能的,谢谢你的参考,只是尝试使用一个加载了插件的hook,但没有成功。你在WP网络上吗?没有,我正在为WP构建一个主题。谢谢。你使用的是什么版本的ACF?请解释你的答案
if( function_exists('acf_add_options_page') ) {

    acf_add_options_page(array(
        'page_title'     => 'Theme General Settings',
        'menu_title'    => 'Theme Options',
        'menu_slug'     => 'theme-general-settings',
        'capability'    => 'edit_posts',
        'redirect'        => false,
        'icon_url' => 'dashicons-laptop',
    ));
}
if( function_exists('acf_add_options_page') ) {

    $parent = acf_add_options_page(array(
        'page_title'    => 'Theme General Settings',
        'menu_title'    => 'General',
        'menu_slug'     => 'theme-general-settings',
        'capability'    => 'edit_posts',
        'redirect'  => false,
    ));

    acf_add_options_sub_page(array(
        'page_title'    => 'Header',
        'menu_title'    => 'Header',
        'parent_slug'   => $parent['menu_slug'],
        'capability'    => 'edit_posts',
        'redirect'  => false,
    ));

    acf_add_options_sub_page(array(
        'page_title'    => 'Footer',
        'menu_title'    => 'Footer',
        'parent_slug'   => $parent['menu_slug'],
        'capability'    => 'edit_posts',
        'redirect'  => false,
    ));


}