WordPress后台添加侧边栏菜单

https://my.oschina.net/shunshun/blog/78193

 

https://www.ludou.org/add-admin-menu-in-wordpress.html

 

添加WordPress顶级管理菜单其实也是一件非常简单的事情,使用两个WordPress内置函数就可以解决问题,分别是add_menu_page()和 add_action(),下面我提供一个php示例代码,添加到主题目录下的functions.php中就可以了:

  1. /**
  2. * 名称:WordPress后台添加顶级菜单
  3. * 作者:露兜
  4. * 博客:http://www.ludou.org/
  5. * 最后修改:2011年01月26日
  6. */
  7.  
  8. // my_add_pages() 为 'admin_menu' 钩子的回调函数
  9. function my_add_pages() {
  10.     // 第一个参数'Help page'为菜单名称,第二个参数'使用帮助'为菜单标题
  11.     // 'manage_options' 参数为用户权限
  12.     // 'my_toplevel_page' 参数用于调用my_toplevel_page()函数,来显示菜单内容
  13.     add_menu_page('Help page', '使用帮助', 'manage_options', __FILE__, 'my_toplevel_page');
  14. }
  15.  
  16. // my_toplevel_page() 用于显示菜单的内容,填写菜单页面的HTML代码即可
  17. function my_toplevel_page() {
  18.     echo '
  19.     这里填菜单页面的HTML代码
  20.     ';
  21.  
  22.     // 如以下示例代码。 wrap 类是WordPress构建好的css类,可以在你的HTML代码中使用
  23.     /*
  24.     echo '
  25.     <div class="wrap">
  26.     <h2>使用帮助</h2>
  27.     <p>这里是使用帮助,通过阅读本文你将了解本程序的使用!有事请<a href="#">与我联系</a></p>
  28.     </div>
  29.     ';
  30.     */
  31. }
  32.  
  33. // 通过add_action来自动调用my_add_pages函数
  34. add_action('admin_menu', 'my_add_pages');

复制代码

上面的代码注释已经比较清晰的介绍了主要内容,下面我再补充一点,关于add_menu_page的第三个参数,上面代码中传递了 manage_options 这个值,这个参数值为用户权限,也就是说只当当前已登录的用户具有manage_options这项权限时,才会在后台侧边栏显示你添加的这个菜单。需要提醒的是,这个是权限参数在WordPress 3.0中已被重新定义,之前版本可以往这个参数传递用户等级(1-10),但是如果你使用的是3.0以后的版本,请传递用户权限值。 
     关于各个用户角色所具有的权限,可以参看这个对应关系表: Capability vs. Role Table,横坐标是用户角色,纵坐标是用户权限,中间蓝色高亮部分为各个角色所拥有的权限,英文也比较好理解,不懂可以找在线翻译。 

  • User Level 0 converts to Subscriber
  • User Level 1 converts to Contributor
  • User Level 2 converts to Author
  • User Level 3 converts to Editor
  • User Level 4 converts to Editor
  • User Level 5 converts to Editor
  • User Level 6 converts to Editor
  • User Level 7 converts to Editor
  • User Level 8 converts to Administrator
  • User Level 9 converts to Administrator
  • User Level 10 converts to Administrator

最后上张图片,添加以上代码后,可以看到后台多了一个 使用帮助 的顶级菜单: 

下面一段是从其他网站上看到的讲解教程

函数用法:

add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

下面说说各参数:

  • $page_title:(字符串) (必须) 这个参数是子菜单的标题,将会显示在浏览器的标题栏,默认为空;
  • $menu_title:(字符串) (必须) 显示的菜单名称,默认为空;
  • $capability:(字符串) (必须) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空,参照capability;
  • $menu_slug:(字符串) (必须) 显示在URl上面的菜单名称,默认为空;
  • $function:返回的方法名称;
  • $icon_url:(字符串) (可选) 显示的菜单图标,可以使用plugin_dir_url( __FILE__ ),图标宽高为16像素;
  • $position:(整数) (可选) 显示菜单的位置。常用位置,4或者59或者99。

示例:

<?php
add_action('admin_menu', 'register_custom_menu_page'); 
function register_custom_menu_page() { 
    add_menu_page('自定义菜单标题', '测试菜单', 'administrator', 'myplugin/myplugin-index.php','',plugins_url('myplugin/images/icon.png'), 6); 

//然后将下面的代码放到myplugin/myplugin-index.php文件中 
echo "Admin Page Test";
//或者使用下面方法 
add_action('admin_menu', 'register_custom_menu_page'); 
function register_custom_menu_page(){ 
    add_menu_page('菜单标题', '菜单名称', 'administrator', 'custompage', 'custom_menu_page',     plugins_url('myplugin/images/icon.png'), 6); 

function custom_menu_page(){ 
    echo "Admin Page Test"; 
}
到此结束

 

二、添加侧边栏子菜单     所有的侧边栏子菜单,也就是在WordPress现有的菜单中,添加对应的子菜单,如往 工具菜单中添加一个子菜单 备份


     以下是php示例代码,添加到主题目录下的functions.php中就可以了:

  1. /**
  2. * 名称:WordPress后台添加侧边栏子菜单
  3. * 作者:露兜
  4. * 博客:http://www.ludou.org/
  5. * 最后修改:2011年01月26日
  6. */
  7.  
  8. function my_add_submenu() {
  9.     add_submenu_page( 'tools.php', 'my_backup', '备份', 'manage_options', 'backup-page', 'my_magic_function');
  10. }
  11.  
  12. // 用于显示菜单的内容,填写菜单页面的HTML代码即可
  13. function my_magic_function() {
  14.     echo '
  15.     这里填菜单页面的HTML代码
  16.     ';
  17.  
  18.     // echo '
  19.     // <div class="wrap">
  20.     // <h2>备份</h2>
  21.     // <p>这里可以备份你的博客数据库。</a></p>
  22.     // </div>
  23.     // ';
  24. }
  25.  
  26. // 通过add_action来自动调用my_add_submenu函数
  27. add_action('admin_menu', 'my_add_submenu');

复制代码

添加子菜单主要通过 add_submenu_page()函数来实现,这个函数有很多参数,下面我来介绍这几个参数的作用。下面是该函数的原型:

  1. add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );

复制代码

$parent_slug 
     这个参数为WordPress内置菜单的文件名称或缩略名,这里我们通常采用菜单文件名的方式。传递这个参数,就说明要往这个顶级菜单添加子菜单, 以上示例代码中传递的值为 tools.php ,对应工具顶级菜单,下面提供这个参数的所有值及其对应的顶级菜单: 

  • index.php:控制板
  • edit.php:文章
  • upload.php:媒体
  • link-manager.php:链接
  • edit.php?post_type=page:页面
  • edit-comments.php:评论
  • themes.php:主题
  • plugins.php:插件
  • users.php:用户
  • tools.php:工具
  • options-general.php:设置

$page_title 
     这个参数是子菜单的标题,将会显示在浏览器的标题栏。 
$menu_title 
     这个是子菜单的名称,将会显示在侧边栏 
$capability 
     用户权限,这个定义了具有哪些权限的用户会看到这个子菜单,具体的参数值,可以参考上面第一部分的顶级菜单的说明。 
$menu_slug 
     子菜单的缩略名,请使用一个唯一的名称,英文形式。 
$function 
     所有调用的函数名称,通过调用这个函数来显示这个子菜单页面的内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 常见错误

2019独角兽企业重金招聘Python工程师标准>>> 1. org.apache.http.conn.HttpHostConnectException: Connection to refused 权限问题: <uses-permission android:name"android.permission.INTERNET"/> 2. 浏览器直接输入url可以get&#xff0c;http …

使用BootStrap框架设置全局CSS样式

一、排版 标题 HTML 中的所有标题标签&#xff0c;<h1> 到 <h6> 均可使用。另外&#xff0c;还提供了 .h1 到 .h6 类&#xff0c;为的是给内联&#xff08;inline&#xff09;属性的文本赋予标题的样式。 <h1>这是一个h1标签</h1><h2>这是一个h2…

SVN初步学习教程

本文目的 让未使用过版本控制器软件或者未使用过subversion软件的人员尽快上手。 subversion的使用技巧很多&#xff0c;这里只总结了最小使用集&#xff0c;即主要的基本功能&#xff0c;能够用来应付日常工作。 因此不涉及subversion服务器端的搭建和配置。 为什么要使用版本…

V2EX大牛的指点

2019独角兽企业重金招聘Python工程师标准>>> first&#xff1a; 我认识一些深圳、杭州、北京的朋友&#xff0c;他们往往更关注以下内容&#xff1a; 1. 代码&#xff08;包括注释&#xff09;的规范性、可维护性 2. 参与一些算法的研究与实现、开源库的创建与维护…

python-实现动态web服务器

# encodingutf-8 import socket from multiprocessing import Process import re import sys# 设置静态文件根目录 HTML_ROOT_DIR ./htmlWSGI_PYTHON_DIR ./wsgipythonclass HTTPServer(object):def __init__(self, application):self.server_socket socket.socket(socket.A…

Android中shape的使用

本人在美工方面一直是比较白痴的&#xff0c;对于一些颜色什么乱七八糟的非常头痛&#xff0c;但是在Android编程中这又是经常涉及到的东西&#xff0c;没办法&#xff0c;只有硬着头皮上。 Android中常常使用shape来定义控件的一些显示属性&#xff0c;今天看了一些shape的使用…

PHP遍历数组的几种方法

这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构&#xff0c;是PHP中专门为遍历数组而设计的语句&#xff0c;推荐大家使用。先分别介绍这几种方法 PHP中遍历数组有三种常用的方法&#xff1a; 一、使用for语句循环遍历数组&#xff1b; 二、…

Jmeter集合ant进行操作

1、下载ant包 地址【http://ant.apache.org/bindownload.cgi】 2、解压后&#xff0c;配置ant的环境变量&#xff0c;如下图 3、修改jmeter/extras中的build.xml的文件 代码如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?><project nam…

五种常见的 PHP 设计模式

设计模式只是为 Java™ 架构师准备的 —— 至少您可能一直这样认为。实际上&#xff0c;设计模式对于每个人都非常有用。如果这些工具不是 “架构太空人” 的专利&#xff0c;那么它们又是什么&#xff1f;为什么说它们在 PHP 应用程序中非常有用&#xff1f;本文解释了这些问题…

linux常见命令的常用方法示例

本文涉及命令&#xff1a;date,clock,hwclock,cal,ls,cd,pwd,tty,whereis,which,stat,echo,shutdown,halt,reboot,poweroff,who,w,whami部分命令结果等同&#xff0c;合到一起示例一、Date 打印或设置系统日期和时间1、date &#xff1a;查看当前系统日期和时间2、date %a:查看…

Day-17: 网络编程

---恢复内容开始--- 现有的互联网通讯方式&#xff0c;是服务器端的进程与客户端进程的通信。Python中进行网络编程&#xff0c;就是在Python程序本身这个进程内&#xff0c;连接别的服务器进程的通信端口进行通信。 互联网协议上包含了上百种协议标准&#xff0c;但是&#xf…

计算机应用基础教程作业脑图 车辆工程学院 冯大昕

转载于:https://www.cnblogs.com/FengTang/p/7553055.html

EasyDSS高性能流媒体服务器前端重构(五)- webpack + vue-router 开发单页面前端实现按需加载 - 副本...

为了让页面更快完成加载, 第一时间呈现给客户端, 也为了帮助客户端节省流量资源, 我们可以开启 vue-router 提供的按需加载功能, 让客户端打开页面时, 只自动加载必要的资源文件, 当客户端操作页面, 切换功能模块, 触发页面路由变化时, 再去加载相应需要的资源. 本系列博客的前…

解密阿里云七武器之高性能消息服务ONS

2019独角兽企业重金招聘Python工程师标准>>> 7月22日&#xff0c;首届阿里云分享日上&#xff0c;阿里云正式对外发布了企业级互联网架构解决方案&#xff0c;该服务由EDAS应用框架、ONS消息队列、DRDS分布式数据库组成&#xff0c;能有效解决企业上云后网站过载、性…

windows服务器下的ftp server搭建

软件下载链接&#xff1a;http://pan.baidu.com/s/1eQJbmUY ftpserver1.下载后打开。2.运行安装3.安装目录选择。这里我选择安装在C盘的FTP目录下&#xff0c;直接填写即可。这个安装目录可随意设置。4.安装启动。查看使用教程&#xff0c;添加用户名&#xff0c;设置密码&a…

WordPress获取当前分类ID的四种方法

WordPress获取当前分类ID的四种方法 时间: 2015-01-05 所属栏目: Wordpress教程 作者: WP管理员之家 关键词: wordpress,分类ID 关注热度&#xff1a; 4,346 次 (1条) WordPress获取当前分类ID的方法有很多&#xff0c;今天我来给大家总结一下吧,wordpress主题定制专家-WP管理…

EditPlus3 添加 PHP代码格式化

https://www.jb51.net/softs/23113.html 整合PHPCB到EditPlus&#xff1a; EidtPlus&#xff1a;工具》配置用户工具…》添加工具&#xff1a; 菜单文本&#xff1a;PHPCB 命令&#xff1a;浏览到PHPCB程序。 参数&#xff1a;--space-after-if --optimize-eol --space-aft…

1-17

今天很慵懒啊&#xff0c;啥事也没做&#xff0c;把高精度复习了一遍&#xff08;hdu1002&#xff09;。 首先俩字符串数组输入&#xff0c;然后按字符串的长度逆序转到整形数组里 &#xff08;主要是为了把数值的最低位移动到数组的最低位&#xff0c;方便进位&#xff09;&am…

FTP下载导致Zip解压失败的原因

情形&#xff1a;网关通过FTP下载快钱对账文件时通过Apache下commons-net的commons-net-3.5.jar进行封装&#xff0c;对账文件中有中文和英文的文字,大部分情况下能够下载成功&#xff0c;而且也能解压成功。但是偶尔会出现下载了zip的文件&#xff0c;但是解压失败的情况。解决…

zabbix通过JMX监控Tomcat及一些报错

软件包下载地址&#xff1a;Wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.11/bin/apache-tomcat-7.0.11.tar.gz#安装jdk:Mkdir /usr/lib/jvmTar xf jdk-7u45-linux-x64.gz -C /usr/lib/jvm#在profile追加以下内容 Vim /etc/profileJAVA_HOME"/usr/lib/jvm/j…