在WordPress中获取数据库字段内容和添加主题设置菜单


Posted in PHP onJanuary 11, 2016

get_option() 函数使用技巧
get_option()这个函数,实际上我们在整合后台功能的时候经常会用到的一个函数,主要用来从 WordPress 博客数据库 option 表中取得我们想要的字段内容的一个函数,在目前大部分的主题中,只要是主题集成了后台控制页面,也大都用到了这个函数,虽然 WP 给了我们很多方法去临时存储我们对主题的设置,但是用比较稳定的数据库去存储主题设置还是大部分主题作者的首选。

get_option() 函数的解释、用法网上还是有很多中文文献的,包括官方文档该函数也有中文版的解释,因为使用起来简单,思路比较清晰所以这里就不过多解释。
官方API :get_option
直接备忘用法

使用技巧
通常我们取设置的时候,会加一个判断,因为我们不知道主题是不是第一次在系统中安装,

if (!get_option('xiangzi')){//判断是否存在
 $default_xiangzi = array (//先设置一个默认值
 'title'=>'博客',
 'name'=>'翔子',
 'url'=>'pangbu.com');
 update_option('xiangzi', $default_xiangzi);
 //设置option的默认值
}
$xiangzi = get_option('xiangzi');//获取设置

很凑巧,出于某种原因 WP 官方为我们增设了get_option 函数的第二个参数
所以我们可以这样

$default_xiangzi = array (//先设置一个默认值
 'title'=>'博客',
 'name'=>'翔子',
 'url'=>'pangbu.com')
$xiangzi = get_option('xiangzi',$default_xiangzi);
//这样是不是很简单?

add_theme_page()函数-添加你的主题设置菜单
也许你会觉得,Wordpress 官方默认主题,是一个很蛋疼的主题,样式丑陋、并且功能简陋,有一种只有陋室铭这种励志类的文章才能鼓励你用下去的感觉,也许你会觉得这个主题除了给那些不会安装主题的菜菜菜菜菜鸟用之外几乎毫无用处,那你就错了。官方默认主题的最大用处就是有很大的研究价值,至少我目前的 WP 主题知识大部分都是通过研究默认主题得来的,今天研究的是add_theme_page()函数。

描述
add_theme_page()函数,在 WordPress 后台添加页面。在这里我们一般都是为了添加设置页面才用到该函数,当然你要是闲的蛋疼的话,你可以添加诸如个人说明的页面在后台。

使用

 

<?php 
add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function); 
//page_titile-title标签的内容 
//menu_title-显示在后台左边菜单的标题 
//capability-访问这个页面需要的权限 
//menu_slug-别名,需要独一无二哦 
//function-执行的函数 
?>

$page_title, $menu_title, $capability, $menu_slug, $function 这几个参数比较常用。

因为add_theme_page()函数使用起来实在是太简单了,所以我们还是直接上代码吧。

实例

function xz_theme_options_add_page() {
 $theme_page = add_theme_page(
 '主题设置', //页面Titlee
 '主题设置', // 在后台菜单中显示的名字
 'edit_theme_options',   // 选项放置的位置
 'theme_options',    // 别名,也就是get传送的参数
 'xz_theme_op_page' //调用显示内容调用的函数
 );
}
function xz_theme_op_page (){//内容显示函数
 echo "我是主题编辑页面";
}
add_action( 'admin_menu', 'xz_theme_options_add_page' );

效果

在WordPress中获取数据库字段内容和添加主题设置菜单

添加后台菜单效果

PHP 相关文章推荐
用IE远程创建Mysql数据库的简易程序
Oct 09 PHP
php 友好URL的实现(吐血推荐)
Oct 04 PHP
PHP 开源AJAX框架14种
Aug 24 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
Jul 23 PHP
20个2014年最优秀的PHP框架回顾
Oct 22 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
Jan 07 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 PHP
[原创]PHP简单开启curl的方法(测试可行)
Jan 11 #PHP
详解YII关联查询
Jan 10 #PHP
PHP 设计模式系列之 specification规格模式
Jan 10 #PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 #PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 #PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 #PHP
PHP基于单例模式实现的mysql类
Jan 09 #PHP
You might like
PHP基础之运算符的使用方法
2013/04/28 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php验证码实现代码(3种)
2015/09/07 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
js实现拖拽上传图片功能
2017/08/01 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
vue.js实现简单的计算器功能
2020/02/22 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
详细分析python3的reduce函数
2017/12/05 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
一名女生的自荐信
2013/12/08 职场文书
办公室文书岗位职责
2013/12/16 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
洗煤厂厂长岗位职责
2014/01/03 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
财务统计员岗位职责
2015/04/14 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
Python连续赋值需要注意的一些问题
2021/06/03 Python