为选项页面实现WordPress设置类

时间:2014-11-12 08:26:29

标签: wordpress

我正在尝试实施此课程: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中回应某些东西,它会打印出来。

其余代码来自该网站。这是一个例子。

菜单无法显示。

我错过了什么吗?

由于

2 个答案:

答案 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
应出现菜单顺序此菜单中的位置 希望它能解决你的问题:)