Php WP-高级自定义字段:acf_添加_选项_页面()不存在
我正在尝试在WP中设置带有高级自定义字段的选项页面 我在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
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,
));
}