1.创建一个新的插件test-two,在插件的目录下创建一个test-two文件夹;
2.创建test-two.php文件进行添加描述插件的信息;
#part 1
<?php /* Plugin Name: Test Two Plugin URI: http://test-two.com Description: 测试开发插件 Version: 1.0.0 Author: test Author URI: http://test-two.com License: testtwo */
在插件中看到如下的效果:
3.将插件显示在主菜单中,这个过程中主要用到了add_menu_page()这个钩子,对应的有好几个参数,上代码:
#part 2 add_action('admin_menu', 'two_create_menu'); function two_create_menu(){ //创建顶级菜单 add_menu_page( 'Test Two Index', #浏览器上面显示的标题 '测试插件', #插件名称 'manage_options', #权限 'test_two', #url后面链接的参数 'two_setting_page', #回调方法名称, 主要是在这里面设置页面 '' ); } function two_setting_page(){ <h2>这里是菜单页面</h2> } 参考备注部分(可以不看): add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); 参数解释: $page_title: (字符串,必须)菜单页面标题,即显示在标题栏的标题 $menu_title: (字符串,必须)菜单标题,即菜单显示的问题 $capability:(字符串,必须)权限,即向哪些用户显示此菜单 $menu_slug:(字符串,必须)显示在uri地址栏里的页面名称,默认可为空,类似?page=custompage $function:回调方法的名称 $icon_url:(可选)菜单图标url $position:(可选)菜单显示顺序
4.菜单里面元素设置:
a.register_setting(); #注册一个新的setting,注册设置及其数据。
register_setting( string $option_group, string $option_name, array $args = array() )
option_group:设置一个共同的分组
option_name:设置数据库中存储的数组索引
b.add_settings_section(); #配合register_setting使用,添加一个设置提交数据的区域
add_settings_section( string $id, string $title, callable $callback, string $page )
c.add_settings_field(): #最终的大boss, 在前面两个的基础上来添加各种元素,即:每调需要input中输入的数据元素
上代码:
#part 3
add_action('admin_init', 'register_test_two'); function register_test_two(){ #注册一个选项, 用于装在所有的插件设置项 $options_group = 'test_two_group'; #相当于一个数组 register_setting($options_group, 'test_two_options'); #数据库中存储的索引名称 #添加设置选项 ??? $setting_section = 'test_two_setting_section'; add_settings_section( $setting_section, '这里是 add_settings_section 设置', 'test_two_setting_section_function', $options_group ); add_settings_field( 'test_two_color', '字体颜色', 'test_two_color_function', $options_group, $setting_section ); } function test_two_color_function(){ $test_two_color_options = get_option('test_two_options'); # 注意input中name和value的取值,都是前面setting的时候设置的数据库中的索引名称 ?> <input type="text" name="test_two_options[color]" value="<?=$test_two_color_options['color']?>"> <?php } #输入选项的区域设置 function test_two_setting_section_function(){ ?> <p>设置字体的样式</p> <?php }
设置创建菜单中的调用方法:
这个大菜单的页面区域会调用前面设置好的 分组:$options_group,然后使用 settings_fields()和do_settings_sections() 分别设置字段和区域
#part 4
function two_setting_page(){ ?> <div class="wrap"> <h2>顶级菜单</h2> <form action="options.php" method="post"> <?php $options_group = 'test_two_group'; #相当于一个数组 #输出必要的字段 settings_fields($options_group); #输出显示的区域 do_settings_sections($options_group); #输出按钮 submit_button(); ?> </form> </div> <?php }