在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之apc
May 15 PHP
深入php list()函数的详解
Jun 05 PHP
php增删改查示例自己写的demo
Sep 04 PHP
Zend Framework页面缓存实例
Jun 25 PHP
php简单实现MVC
Feb 05 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
smarty高级特性之过滤器的使用方法
Dec 25 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
php 后端实现JWT认证方法示例
Sep 04 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
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
实例讲解python函数式编程
2014/06/09 Python
Python内置模块logging用法实例分析
2018/02/12 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
Django实现文件上传下载
2019/10/06 Python
python能做哪方面的工作
2020/06/15 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
大一学生假期实习的自我评价
2013/10/12 职场文书
中学运动会广播稿
2014/01/19 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
天气温馨提示语
2015/07/14 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技