博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己动手从头制作WordPress主题(二)实现主题选项
阅读量:5357 次
发布时间:2019-06-15

本文共 1412 字,大约阅读时间需要 4 分钟。

我们介绍了WordPress主题制作的基本知识,并且制作了一个简陋的WP博客园主题。在制作的过程中发现一个问题,就是WP后台没有设置Meta的keywords的地方。于是想自己增加一个设置界面。如果用phpmyadmin查看过WP的数据库结构,就很容易明白后台设置的原理:只不过是在WP_Options表中增加一条记录,当然我们是用WP提供的标准函数来操作数据库。

机制

我们登录后台时,WP如何将控制权交给我们呢?是去调用我们主题的哪个文件呢?约定:functions.php文件。此处有一陷阱:一旦我们的主题包含了functions.php,就在WP的请求响应处理管线中插入了一环,无论我们访问的是哪一个页面,都要经过functions.php,这显然不是我们想要的。我们需要的是:登录后台时才去执行functions.php里面的逻辑,用户访问前台网站不需要执行。这个“陷阱”可以通过Zend Studio的调试功能看到:

在functions.php中设置断点,然后访问前台index.php,却得到了上图的调用堆栈。这样的结果虽然有些意外,但让我们对WP的机制有了些了解,看来调试还是很重要的:) 下面会给出编码,来避免这个性能陷阱。

后台实现

了解了上面的陷阱以后,为了方便增加了一个theme-options.php文件来实现主题选项的逻辑,这样functions.php的代码就简化了:

我们用is_admin()函数判断用户访问的是前台还是后台。

theme-options.php代码:

当前主题选项

meta keywords

get_option函数获取选项值;update_option更新选项。我们这里定义了一个“cnblogs_options”的选项,为了和WP自己的选项分开来,这里定义成数组形式。php的数组可以当成C#的字典集合使用,这里定义了字典项"meta_keywords“。

add_theme_page 函数在后台页面->外观菜单下插入一个"主题选项"的菜单。

当点击此菜单时调用display函数,显示设置界面。

add_action('admin_menu','init')相当于添加事件和事件处理程序。WP的常用actions参考。

init函数判断如果点击了"input_save"保存按钮,提交form表单,就保存更改。

前台调用:

header.php中添加以下代码

 

转载于:https://www.cnblogs.com/phpla/archive/2012/11/03/2751533.html

你可能感兴趣的文章
day 3 修改haproxy.cfg 作业
查看>>
UIScrollView —— 缩放实现案例(二)
查看>>
【Qt】Qt Linguist介绍【转】
查看>>
sim usim Uim 区别
查看>>
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>
视觉设计师的进化
查看>>
Python/jquery
查看>>
【BZOJ】【2132】圈地计划
查看>>
Lua 语言基本语法
查看>>
ARM 的Thumb状态测试
查看>>
windows下读取utf-8文件
查看>>
apache 启动不了的排查方法
查看>>
Java有没有goto?
查看>>
(转)makefile 的用法
查看>>
求不相邻金币相加和的最大值--动态规划1
查看>>
[转][osg]探索未知种族之osg类生物【目录】
查看>>
四十九. Zabbix报警机制 、 Zabbix进阶操作 、 监控案例
查看>>
元类中__new__ 与 __init__的区别--day27
查看>>