当前位置:首页 > 建站教程 > WordPress插件制作教程(三): 添加菜单的方法

WordPress插件制作教程(三): 添加菜单的方法

2年前 (2024-09-06)建站教程2180
上一篇编写了一个简单的插件,让大家对插件的简单制作有个了解,这一篇我们在更深一步,当我们激活插件后后台会显示菜单出来,然后通过单击菜单显示自己定义好的信息。激活之后会在WordPress后台显示一个菜单,下面会有多个子菜单,如下图: 1. 在WordPress后台添加一个同级主菜单,在主菜单下添加子菜单
// add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position ); 
// 官方文档: http://codex.wordpress.org/Function_Reference/add_menu_page
// 关于参数:
// $page_title:(字符串) (必须) 这个参数是子菜单的标题,将会显示在浏览器的标题栏,默认为空;
// $menu_title:(字符串) (必须) 显示的菜单名称,默认为空;
// $capability:(字符串) (必须) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空;关于用户权限的官方文档:http://codex.wordpress.org/Roles_and_Capabilities
// $menu_slug:(字符串) (必须) 显示在URl上面的菜单名称,默认为空;
// $function:返回的方法名称;
// $icon_url:(字符串) (可选) 显示的菜单图标,可以使用plugin_dir_url( __FILE__ ),图标宽高为16像素;
// $position:(整数) (可选) 显示菜单的位置。常用位置,4或者59或者99。

// add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
// 官方文档: http://codex.wordpress.org/Function_Reference/add_submenu_page
// 关于参数:
// $parent_slug:(字符串) (必须)顶级菜单名称,可以在顶级菜单中加入我们的子菜单,也可以在自定义顶级菜单中加入子菜单;(也就是 add_menu_page() 函数中的 $menu_slug 参数)
// $page_title:(字符串) (必须) 这个参数是子菜单的标题,将会显示在浏览器的标题栏,默认为空;
// $menu_title:(字符串) (必须) 显示的菜单名称,默认为空;
// $capability:(字符串) (必须) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空;关于用户权限的官方文档:http://codex.wordpress.org/Roles_and_Capabilities
// $menu_slug:(字符串) (必须) 显示在URl上面的菜单名称,默认为空;
// $function:所有调用的函数名称,通过调用这个函数来显示这个子菜单页面的内容。

// 显示主菜单和子菜单
add_action('admin_menu','add_settings_menu');
function add_settings_menu() {
    add_menu_page(__('自定义菜单标题'), __('测试菜单'), 'administrator',  __FILE__, 'my_function_menu', false, 100);
    add_submenu_page(__FILE__,'子菜单1','测试子菜单1', 'administrator', 'your-admin-sub-menu1', 'my_function_submenu1');
    add_submenu_page(__FILE__,'子菜单2','测试子菜单2', 'administrator', 'your-admin-sub-menu2', 'my_function_submenu2');
    add_submenu_page(__FILE__,'子菜单3','测试子菜单3', 'administrator', 'your-admin-sub-menu3', 'my_function_submenu3');
}
function my_function_menu() {
  echo "<h2>测试菜单设置</h2>";
}
function my_function_submenu1() {
   echo "<h2>测试子菜单设置一</h2>";
}
function my_function_submenu2() {
    echo "<h2>测试子菜单设置二</h2>";
}
function my_function_submenu3() {
    echo "<h2>测试子菜单设置三</h2>";
}
  2. 在WordPress后台外观菜单里面添加一个子菜单  
// add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function );
// 官方文档: http://codex.wordpress.org/Function_Reference/add_theme_page
// 关于参数:
// $page_title: (string) (required) 显示菜单的标题,将会显示在浏览器的标题栏,默认为空;
// $menu_title: (string) (required) 显示的菜单名称,默认为空;
// $capability: (string) (required) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空;关于用户权限的官方文档:http://codex.wordpress.org/Roles_and_Capabilities
// $menu_slug: (string) (required)  显示在URl上面的菜单名称. 默认为空;
// $function: (callback) (optional) 通过调用这个函数来显示这个子页面的内容。 Default: ' '

//在WordPress后台外观菜单里面添加一个子菜单
add_action('admin_menu', 'appearance_submenu');
function appearance_submenu() {
  add_theme_page(__('插件设置'), __('插件设置'), 'administrator', 'your-unique-identifier', 'add_appearance_submenu');
}

function add_appearance_submenu() {
  echo '<div><p>这儿就是主题插件设置的地方.</p></div>';
}
  3.  在WordPress后台仪表盘处添加一个子菜单
// add_dashboard_page( $page_title, $menu_title, $capability, $menu_slug, $function);
// 官方文档: http://codex.wordpress.org/Function_Reference/add_dashboard_page
// 关于参数:
// $page_title: (string) (required) 显示菜单的标题,将会显示在浏览器的标题栏,默认为空;
// $menu_title: (string) (required) 显示的菜单名称,默认为空;
// $capability: (string) (required) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空;关于用户权限的官方文档:http://codex.wordpress.org/Roles_and_Capabilities
// $menu_slug: (string) (required)  显示在URl上面的菜单名称. 默认为空;
// $function: (callback) (optional) 通过调用这个函数来显示这个子页面的内容。 Default: ' '

// 在WordPress后台仪表盘处添加一个子菜单
add_action('admin_menu', 'dashboard_submenu');
function dashboard_submenu() {
    add_dashboard_page(__('仪表盘设置'), __('仪表盘设置'), 'read', 'your-unique-identifier', 'add_dashboard_submenu');
}
function add_dashboard_submenu() {
  echo '<div><p>这儿就是仪表盘菜单设置的地方.</p></div>';
}
  4. 在WordPress后台评论处添加一个子菜单  
// add_comments_page( $page_title, $menu_title, $capability, $menu_slug, $function);
// 官方文档: http://codex.wordpress.org/Function_Reference/add_comments_page
// 关于参数:
// $page_title: (string) (required) 显示菜单的标题,将会显示在浏览器的标题栏,默认为空;
// $menu_title: (string) (required) 显示的菜单名称,默认为空;
// $capability: (string) (required) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空;关于用户权限的官方文档:http://codex.wordpress.org/Roles_and_Capabilities
// $menu_slug: (string) (required)  显示在URl上面的菜单名称. 默认为空;
// $function: (callback) (optional) 通过调用这个函数来显示这个子页面的内容。 Default: ' '

// 在WordPress后台评论处添加一个子菜单
add_action('admin_menu', 'comments_submenu');
function comments_submenu() {
    add_comments_page(__('评论菜单'), __('我的评论'), 'read', 'your-unique-identifier-comments', 'add_comments_submenu');
}
function add_comments_submenu() {
    echo '<div><p>这儿就是评论菜单设置的地方.</p></div>';
}
  5. 以上介绍了不同的显示方法和显示位置。除此之外还有
add_posts_page();      // 在文章处添加子菜单
add_media_page();      // 在媒体处添加子菜单
add_links_page();      // 在链接处添加子菜单
add_pages_page();      // 在页面处添加子菜单
add_plugins_page();    // 在插件处添加子菜单
add_users_page();        // 在用户处添加子菜单
add_management_page(); // 在工具处添加子菜单
add_options_page();    // 在设置处添加子菜单

// 这些都是在WordPress后台添加菜单以及子菜单的方法。大家可以根据自己的需要来进行选择
最后附上:各个用户角色所具有的权限,可以参看这个对应关系表:Capability vs. Role Table,横坐标是用户角色,纵坐标是用户权限,中间蓝色高亮部分为各个角色所拥有的权限。   本章总结: 1. 分别在WP后台的,主菜单、外观菜单、仪表盘菜单、评论菜单处,添加菜单级子菜单 2. 有关本章所涉及到的函数参考,官方文档:https://codex.wordpress.org/Function_Reference

扫描二维码推送至手机访问。

欢迎转载或分享本篇文章。

本文链接:https://www.jcba123.com/article/9957

分享给朋友:

“WordPress插件制作教程(三): 添加菜单的方法” 的相关文章

如何为图像添加 CSS Reveal 动画

如何为图像添加 CSS Reveal 动画

我们可能会想“好吧,这是一个简单的任务!在你制作动画的图像上方添加一个额外的元素,它就完成了。” 没错,但我们不会使用任何额外的元素或伪元素。我们将只使用元素来工作<img>。而已! 这听起来可能是不可能的,因为仅使用图像元素,我们无法在其上方添加任何东西。确实,我们不会在...

Markdown 基础教程 (最全)

Markdown 基础教程 (最全)

Markdown 基础教程 (最全) Markdown 是一种轻量级标记语言,易读易写,被广泛使用于撰写帮助文档 基础语法 标题 使用 # 号可表示 1~6 级标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 #####...

教你如何做英文博客提交网站外链

教你如何做英文博客提交网站外链

英文博客提交网站外链在所有外链类型中一直算是质量比较高的外链了,尤其是对于很多需要养的英文博客来说,这些外链更是必不可少,多多益善,但是相对来说,这类网站还是比较珍稀的,所以,今天环新给出的这十个依旧非常活跃的博客提交站资源可以说是非常有价值的,希望大家能够好好利用。 资源如下:...

使用 WP Downgrade 在线降级 WordPress 到旧版本!

我们都知道,每当WordPress有新本的时候,我们都可以在后台一键更新。但是有些时候,我们的主题或插件可能不兼容新版本的WP,这时候我们如果要降级为之前的旧版本,该怎么操作呢?下面一起来看看。 重要提示:不管是升级还是降级,操作前,请务必备份你的网站数据,尤其是网站的数据库,以防万一!...

WordPress 如何批量修改文章信息?

你是否遇到过如下几种状况: 博客更换域名,博客文章的内容也要跟着换 使用的图片地址更换了 写了很多文章,回过头来想切换作者 想删除某个可恶留言者的所有留言 想更改某个留言者所有留言的网站URL 想要禁用所有文章的pingback 想要禁用所有文章的评...

8个好用的WordPress RSS Feed插件

8个好用的WordPress RSS Feed插件

什么是RSS Feed? RSS代表“Really Simple Syndication”,但它也可能意味着“丰富站点摘要”或“实时简单联合组织”。这是一种基于XML的内容格式,可向用户更新所有他们喜欢的网站上的最新新闻,文章,标题和内容。 由于已经存在了很长一段时间,因此许多人都认为RSS...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。