wordpress后台是可以进行订制,添加个菜单或者删除个菜单,都是可以订制。这里从简单的一个开始,就是给后台外观
下添加一个添加一个子菜单,因为WordPress提供的有个函数add_theme_page
, 可以轻松的完成。
进行代码的编写,一件事情,就是要知道代码写在什么地方。 wordpress每个主题下,都可以有个文件 functions.php
文件。当然有些主题这个文件是不存在的,如果这个文件不存在,在当前启用的主题下,新建一个就可以。
add_theme_page 介绍
/**
* 在主题菜单中增加一个子菜单
*
* @$page_title 当点击这个菜单的适合,参数的会在页面的 <title></title> 中的内容显示
* @$menu_title 在菜单中显示的文字
* @$capability 权限,谁可以进行这个操作 , 一般用 administrator 表示管理员
* @$menu_slug 这个名字是的,因为用在网址中 比如: /wp-admin/themes.php?page=*****
* @$function 调用的函数,这个函数的输出被显示出来,通常包含一个表单,或者提示信息。
* @return false|string 返回是false 表示当前用户没有权限调用
*/
add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' )
示例代码
function wz_add_sub_menu(){
add_theme_page(
'title标题的内容',
'子菜单的名字',
'administrator',
'test',
'wz_show');
}
function wz_show(){
echo '<h1>这是设置页面</h1>';
}
add_action('admin_menu', 'wz_add_sub_menu');
示例代码效果
添加的菜单– 对应二个参数 menu_tilte
title的显示–对应一个产生
url中的产生 — 对应对四个参数
代码分析
代码一共两个函数,一个action
。如果代码修改为这个样子
function wz_show(){
echo '<h1>这是设置页面</h1>';
}
add_theme_page( 'title标题的内容', '子菜单的名字', 'administrator', 'test','wz_show');
会发现出现错误,函数 add_theme_page
不存在, 理解代码执行的关键在于理解这个action的执行流程。 首先增加一个动作,这个动作在wordpress初始化后台的时候执行,到这个时候就已经加载了函数add_theme_page
所在的文件。然后执行函数wz_add_sub_menu
,后调用 add_theme_page
。
一句上面代码执行的原因是: 主题目录下 functions.php 执行早于 /wp-admin/includes/plugins.php 这个文件加载, 而函数add_theme_page 就在该文件中
函数add_theme_page
其实调用的函数 add_submenu_page
函数源代码
function add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
return add_submenu_page( 'themes.php', $page_title, $menu_title, $capability, $menu_slug, $function );
}
函数add_submenu_page
的看名字就知道什么意思。