我正在尝试实施此课程:A WordPress Settings Class for Options Pages
我尝试了什么:
function add_wp_page(){
require_once( TEMPLATEPATH."/folder_admin/wm-settings.php" );
// A top level page
$my_top_page = create_settings_page(
'my_top_level_page',
__( 'My Top Level Page' ),
array(
'parent' => false,
'title' => __( 'Top Level Menu' ),
'icon_url' => 'dashicons-admin-generic',
'position' => '63.3'
),
array(
'my_standard_section' => array(
'title' => __( 'Standard' ),
'description' => __( 'My section description.' ),
'fields' => array(
'my_input' => array(
'label' => __( 'Input example' )
),
'my_checkbox' => array(
'type' => 'checkbox',
'label' => __( 'Checkbox example' )
),
'my_textarea' => array(
'type' => 'textarea',
'label' => __( 'Textarea example' )
)
)
)
),
array(
'tabs' => true,
'submit' => __( 'My Submit' ),
'reset' => __( 'My reset' ),
'description' => __( 'My page description.' ),
'updated' => __( 'My success message !')
)
);
// And a sub-page
$my_sub_page = create_settings_page(
'my_sub_page',
__( 'My Sub Page' ),
array(
'parent' => 'my_top_level_page',
'title' => __( 'Sub Level Menu' )
)
);
}
add_action( 'admin_init', 'add_wp_page' );
TEMPLATEPATH没关系。如果我在wp-settings.php中回应某些东西,它会打印出来。
其余代码来自该网站。这是一个例子。
菜单无法显示。
我错过了什么吗?
由于
答案 0 :(得分:1)
需要在'admin_init'之前注册设置。
将最后一行替换为add_action( 'init', 'add_wp_page' );
。
此外,避免将require_once包装在一个操作中,否则您将无法访问钩子外的get_setting()
。
哦,位置可以是一个字符串。实际上建议使用十进制数来防止这些菜单位置与其他插件或主题发生冲突。
答案 1 :(得分:0)
请设置'position'=> '63 .3'到整数。
或使用核心菜单的位置:
2 Dashboard
4 Separator
5 Posts
10 Media
15 Links
20 Pages
25 Comments
59 Separator
60 Appearance
65 Plugins
70 Users
75 Tools
80 Settings
99 Separator
应出现菜单顺序此菜单中的位置
希望它能解决你的问题:)