在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 相关文章推荐
10 个经典PHP函数
Oct 17 PHP
php中rename函数用法分析
Nov 15 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
php备份数据库类分享
Apr 14 PHP
PHP获取远程图片并保存到本地的方法
May 12 PHP
PHP实现的进度条效果详解
May 03 PHP
PHP中的表达式简述
May 29 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 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
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
python下如何让web元素的生成更简单的分析
2008/07/17 Python
Python实现完整的事务操作示例
2017/06/20 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
工商学院毕业生个人自我评价
2013/09/19 职场文书
简单租房协议书
2014/04/09 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书
javaScript Array api梳理
2021/03/31 Javascript
详解MySQL中的主键与事务
2021/05/27 MySQL
详解Python类和对象内容
2021/06/22 Python