您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程
自己动手制作WordPress主题步骤教程
梁胤鸣2025-03-01WordPress教程已有人查阅
导读在制作的过程中发现一个问题,就是WP后台没有设置Meta的keywords的地方。于是想自己增加一个设置界面。如果用phpmyadmin查看过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的代码就简化了:
theme-options.php代码:
add_theme_page 函数在后台页面->外观菜单下插入一个"主题选项"的菜单。
当点击此菜单时调用display函数,显示设置界面。
add_action('admin_menu','init')相当于添加事件和事件处理程序。WP的常用actions参考这里。
init函数判断如果点击了"input_save"保存按钮,提交form表单,就保存更改。前台调用:
header.php中添加以下代码
机制
我们登录后台时,WP如何将控制权交给我们呢?是去调用我们主题的哪个文件呢?约定:functions.php文件。此处有一 :一旦我们的主题包含了functions.php,就在WP的请求响应处理管线中插入了一环,无论我们访问的是哪一个页面,都要经过functions.php,这显然不是我们想要的。我们需要的是:登录后台时才去执行functions.php里面的逻辑,用户访问前台网站不需要执行。这个“ ”可以通过Zend Studio的调试功能看到:
在functions.php中设置断点,然后访问前台index.php,却得到了上图的调用堆栈。这样的结果虽然有些意外,但让我们对WP的机制有了些了解,看来调试还是很重要的:) 下面会给出编码,来避免这个性能 。后台实现
了解了上面的 以后,为了方便增加了一个theme-options.php文件来实现主题选项的逻辑,这样functions.php的代码就简化了:
<?php
if(is_admin())
require ('theme-options.php');
?>
我们用is_admin()函数判断用户访问的是前台还是后台。theme-options.php代码:
<?php
function getOptions() {
$options = get_option('cnblogs_options');
if (!is_array($options)) {
$options['meta_keywords'] = '';
update_option('cnblogs_options', $options);
}
return $options;
}
/* 初始化 */
function init() {
if(isset($_POST['input_save'])) {
$options = getOptions();
$options['meta_keywords'] = stripslashes($_POST['meta_keywords']);
update_option('cnblogs_options', $options);
} else {
getOptions();
}
add_theme_page("主题选项", "主题选项", 'edit_themes', basename(__FILE__), 'display');
}
/* 界面 */
function display() {
$options = getOptions();
?>
<form action="#" method="post" enctype="multipart/form-data" name="op_form" id="op_form">
<div class="wrap">
<h2>当前主题选项</h2>
<table>
<tbody>
<tr>
<td>meta keywords</td>
<td>
<label>
<textarea name="meta_keywords" cols="50" rows="10" id="meta_keywords" style="width:98%;font-size:12px;" ><?php echo($options['meta_keywords']); ?></textarea>
</label>
</td>
</tr>
</tbody>
</table>
<p class="submit">
<input type="submit" name="input_save" value="保存" />
</p>
</div>
</form>
<?php
}
add_action('admin_menu', 'init');
?>
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中添加以下代码
<meta name="keywords" content="<?php
$cnblogsopt=get_option('cnblogs_options');
echo $cnblogsopt['meta_keywords'];
?>"/>
本文标签:
很赞哦! ()
相关教程
- (响应式)WordPress主题Ripro9.0博客免扩展二开版
- (自适应)WordPress主题SEO自媒体博客资讯模板RabbitV2.0
- WordPress主题模板JustNews资讯博客类源码V5.2.2
- WordPress主题模板主题巴巴/博客X主题源码免费下载
- WordPress主题制作导航的多种方法介绍
- WordPress主题初始化优化教程
- WordPress主题WP_Query基本用法介绍
- WordPress主题开发常用数据调用介绍
- 修改WordPress主题的方法
- wordpress主题信息的删除方法
- WordPress主题怎么加密,WordPress主题加密怎么破解
- wordpress主题更改语言的方法
图文教程
WordPress上传媒体的方法
WordPress允许您添加,所有类型的媒体文件,如视频,音频和图像。步骤(1) – 点击WordPress中的Media → Add New。
wordpress网站导航栏怎么添加导航菜单栏
一个网站,一般都会有自己的导航菜单栏,这样方便用户分类查找。那么,在使用wordpress建站时,导航菜单一般都是能直接在后台设置的,也不需要其他插件或动作。
wordpress支持html吗,wordpress怎么支持html
wordpress不能直接支持html,需要将xx.html修改为page-xx.php上传到你当前使用的主题目录中使用
WordPress主题代码实现静态化的方法
WordPress主题代码怎么静态化?下面本篇文章给大家整理分享WordPress主题代码静态化教程,希望对大家有所帮助!
相关源码
-
(自适应)绿色新闻生活百科资讯文章博客类网站pbootcms模板源码本模板基于PbootCMS开发,为生活百科、资讯文章和博客类网站设计。采用清新绿色系风格,提供舒适的阅读体验,同时适配PC和移动设备。适用于生活技巧分享、健康知识传播查看源码 -
(自适应响应式)动力刀座五金机械设备pbootcms网站源码下载为动力刀座及五金机械企业定制的响应式网站框架,基于PbootCMS系统深度开发,助力传统制造企业实现数字化转型升级。采用手工编写的DIV+CSS前端架构,代码执行效率提升40%。查看源码 -
帝国cms淘宝客京东联盟网站整站源码下载本模板基于帝国CMS内核深度开发,为淘宝客行业量身定制。随着腾讯微信与淘宝生态的互联互通,淘宝客链接现可在微信、QQ等平台直接分享,为推广带来更多便利。模板特别优化了店铺推广功能,有效避免商品下架导致的链接失效问题,同时支持京东联盟等多平台商品推广。查看源码 -
帝国cms7.5奇闻异事末解之谜模板免费下载带数据本模板基于帝国CMS7.5系统开发,为神秘现象、未解之谜类主题网站设计。包含完整的PC端、移动端及百度MIP站同步生成功能,内置火车头采集规则模块,可快速采集目标站内容资源。整体设计风格神秘大气,符合主题定位。查看源码 -
(自适应)高端集团跨国公司产业联盟机构网站模板免费下载基于PbootCMS内核开发的集团级企业网站模板,采用响应式设计架构,确保在各类移动设备上获得浏览体验。通过模块化布局与简约大气的视觉风格,帮助集团企业高效展示组织架构、发展历程和业务矩阵,建立专业的企业形象窗口。查看源码 -
(自适应)WordPress二次元博客主题SakurairoSakurairo主题为二次元内容创作者设计,提供丰富的动漫风格元素和个性化的展示效果。该主题在原有Sakura主题基础上进行了功能增强,支持多种自定义设置,满足动漫爱好者建立个人博客的需求。查看源码
| 分享笔记 (共有 篇笔记) |

