WP - 高级自定义字段:acf_add_options_page()不存在

时间:2016-03-29 16:51:56

标签: php wordpress advanced-custom-fields

我正在尝试在WP中使用高级自定义字段设置选项页

我在android.intent.action.QUERY_PACKAGE_RESTART档案中的内容:

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'); } 会返回function_exists('acf_add_options_page')

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


当我尝试使用false时:

我得到以下acf_add_options_page();


当我避免使用Uncaught Error: Call to undefined function acf_add_options_page()时,仅使用acf_add_options_page();

我收到以下警告

acf_add_options_sub_page()



ps 我正在使用 hook (尝试使用 init plugins_loaded admin_init )在Warning: Illegal string offset 'slug' in C:\xampp\htdocs\wp-content\plugins\acf-options-page\acf-options-page.php on line 230 Warning: Illegal string offset 'title' in C:\xampp\htdocs\wp-content\plugins\acf-options-page\acf-options-page.php on line 230 上加载函数:

functions.php

5 个答案:

答案 0 :(得分:12)

我遇到了类似的问题,但是我将代码作为必须使用的插件的一部分运行。

问题是acf插件在 mu-plugins之后加载,所以该函数还不存在。

我使用plugins_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' );

答案 1 :(得分:1)

尝试不使用add_action。只是做:

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',
));
...
}

答案 2 :(得分:1)

以下是我如何运作:

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'
 ));
}

答案 3 :(得分:1)

嗨,尝试一下$parent['menu_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,
    ));


}

https://www.advancedcustomfields.com/resources/acf_add_options_sub_page/

答案 4 :(得分:-1)

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',
    ));
}