上一篇的内容中我们说了如何创建一个插件以及删除和停用,这篇我们来说一下如何创建插件菜单和增加插件设置页面
先说一下如何创建插件菜单,这里说的是在后台的设置的菜单中增加一个属于我们插件的页面
添加到设置->常规中
如果我们的插件设置很简单,只需一个或两个参数的时候,可以考虑添加到设置->常规的页面中,这样就无须再新增页面了
/**
* WordPress 添加额外选项字段到常规设置页面
*/
$new_general_setting = new new_general_setting();
class new_general_setting {
function new_general_setting( ) {
add_filter( 'admin_init' , array( &$this , 'register_fields' ) );
}
function register_fields() {
register_setting( 'general', 'PushBear_SendKey', 'esc_attr' );
add_settings_field('PushBear_SendKey', '<label>'.__('PushBear SendKey' ).'</label>' , array(&$this, 'fields_html') , 'general' );
}
function fields_html() {
$value = get_option('PushBear_SendKey');
echo '<input type="text" id="PushBear_SendKey" name="PushBear_SendKey" value="' . $value . '" />';
}
}
这样我们就可以在常规页面中看到我们新增的PushBear SendKey
,获取配置可以使用
get_option('PushBear_SendKey');
这还不算完,如果我们的设置参数很多呢?这样明显有点麻烦,所以我们直接新增一个我们插件专属设置页面
新增插件设置页面
这里我们使用add_submenu_page()
函数给options-general.php
添加一个子菜单,也就是我们自己插件的设置页面
看一下这个add_submenu_page()
函数原型
add_submenu_page($parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function);
各个参数的含义如下:
$parent_slug 父级菜单项的别名
$page_title 页面的title信息
$menu_title 菜单标题
$capability 权限
$menu_slug 别名(url中page的参数)
$function 执行的函数
知道了参数是什么意思,我们就可以来增加插件页面了
add_action('admin_menu', 'pwtw_submit_menu');
function pwtw_submit_menu()
{
add_submenu_page('options-general.php', '微信订阅设置', 'Push To WeChat', 'manage_options', 'Push_To_WeChat', 'pwtw_submit_options', '');
}
增加以后访问/wp-admin/options-general.php?page=Push_To_WeChat
,会发现是个空白页面
接着看设置菜单中会多出一个Push To WeChat
,这个也可以进入我们的插件页面
就这样,下一篇介绍如何完善我们的插件页面
😎 多出点呀大佬
可以放到option里,但我更喜欢用add_menu_page自己单独扯个页面出来。后面既然用中文了,那么__(‘PushBear SendKey’ )这里也应该改了吧。
另外真心求教,add_filter那里为什么要传引用?
@大致 哪里用中文了?前面的是在常规里添加,后面是自己添加页面,不一样吧;引用这里兼容了低版本,5.6+好像已经不用这么写了。
@沈唁 add_submenu_page(‘options-general.php’, ‘微信订阅设置’, ‘Push To WeChat’, ‘manage_options’, ‘Push_To_WeChat’, ‘pwtw_submit_options’, ”);
这不就是直接上中文了吗。都是在后台自己看,都是标题或者名字,没觉得有什么不一样。
@大致 嗯,这里是插件名是英文的,所以名字用了英文,没用汉字