我正在尝试在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
答案 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',
));
}