您现在的位置是:首页 > 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的代码就简化了:
<?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'];
?>"/>

本文标签:

很赞哦! ()

相关源码

  • (自适应响应式)个人作品技术文章博客网站模板下载基于PbootCMS内核开发的响应式博客模板,为数字营销、技术分享类内容打造。采用前沿设计理念,兼顾内容展示与阅读体验,适配各类终端设备。通过本模板可快速构建专业级行业博客,有效传播专业知识与案例成果。查看源码
  • (自适应响应式)蓝色勘察设计院机构单位商会协会pbootcms模板下载本模板基于PbootCMS系统开发,为勘察设计院所、工程咨询单位设计,特别适合展示设计成果、技术服务和项目案例。采用响应式技术,确保设计图纸和方案以及文案在不同设备上都能清晰展示。查看源码
  • 帝国cms大气淘宝客网站源码带手机版带火车头采集本款创意礼物导购网站模板为礼物类电商平台设计,采用清爽简约的界面风格,具备完善的商品导购功能。系统支持在文章攻略中灵活插入商品购买链接,实现内容与电商的结合。查看源码
  • 响应式WordPress简约博客主题Alt_BlogAlt_Blog主题该模板为博客内容展示设计,采用简约现代的风格理念,打造清晰的内容呈现平台。响应式布局确保在不同设备上都能获得良好的浏览体验,帮助博主更好地展示和分享内容。查看源码
  • pbootcms源码宠物类网站源码下载(自适应多端)为宠物装备商店、宠物食品及用品企业打造的营销型模板,基于PbootCMS内核深度开发。采用响应式设计实现PC与移动端适配,PHP7.0+高性能架构支持MySQL/SQLite双数据库查看源码
  • (自适应)蓝色自动溶剂萃取仪器设备类网站pbootcms模板下载本模板为溶剂萃取设备、实验室仪器等精密仪器行业设计,采用PbootCMS内核开发,具有高度专业性和行业适配性。模板设计充分考虑了仪器设备行业展示需求,能够呈现各类精密仪器的技术参数、应用场景和解决方案。查看源码
分享笔记 (共有 篇笔记)
验证码: