专栏首页沈唁志WordPress插件开发教程二:创建插件菜单和插件设置页面

WordPress插件开发教程二:创建插件菜单和插件设置页面

添加到设置->常规中

如果我们的插件设置很简单,只需一个或两个参数的时候,可以考虑添加到设置->常规的页面中,这样就无须再新增页面了

/**
 * 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,这个也可以进入我们的插件页面

就这样,下一篇介绍如何完善我们的插件页面

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 详解Linux运维工程师必备技能

    沈唁
  • 自定义 WordPress 数据库连接出错页面

    沈唁
  • 博客开启HTTPS

    沈唁
  • 安恒紧急漏洞预警: Linux Glibc溢出漏洞凶猛来袭

    GNU glibc 标准库的gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号:CVE-2015-0235,该漏洞可以让攻击者直接远程获取操作系统的控制...

    安恒信息
  • Django+xadmin打造在线教育平台(十)

    代码 github下载 十四、xadmin的进阶开发 14.1.权限管理 (1)用户权限 超级用户拥有所有权限,其它添加的用户默认没有任何权限 进后台添加一个...

    zhang_derek
  • 学界 | BMXNet:基于MXNet的开源二值神经网络实现

    选自arXiv 作者:杨浩进等 机器之心编译 参与:李亚洲 ? 论文地址:https://arxiv.org/abs/1705.09864 摘要:二值神经网络(...

    机器之心
  • 怎样才算是个出色的移动网站[译]

    用户1687375
  • 结合mybatis-plus 实现无XML多表联查询

    实现简单的实体类操作多表, 首先你的项目是使用了mybatis-plus 才可以使用

    工具人
  • 【每周一库】 see - An HTTP server for hosting static files

    see是一个静态文件的HTTP服务器,它的Github仓库介绍十分简单,包含的特性有

    MikeLoveRust
  • httpd – 对Apache的DFOREGROUND感到困惑

    所以我刚刚使用Yum在新的CentOS 7服务器上安装了Apache.我之前已经多次安装过Apache,但我从未见过这样:当我现在运行ps aux时,它总是显示...

    双面人

扫码关注云+社区

领取腾讯云代金券