在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 相关文章推荐
使用PHP模拟HTTP认证
Oct 09 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
Nov 02 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
PHP中Trait及其应用详解
Feb 14 PHP
Mac系统下安装PHP Xdebug
Mar 30 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
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
Yii全局函数用法示例
2017/01/22 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
PHP时间类完整代码实例
2021/02/26 PHP
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
python基础教程之自定义函数介绍
2014/08/29 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
关于迟到的检讨书
2015/05/06 职场文书
保险公司反洗钱宣传活动总结
2015/05/08 职场文书
退税申请报告怎么写
2015/05/18 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
mysql数据库隔离级别详解
2022/06/16 MySQL