WordPress中使主题支持小工具以及添加插件启用函数


Posted in PHP onDecember 22, 2015

让主题支持小工具
WordPress 的小工具(widget)是一大特色,它让用户自由拖动组合内容,而且任何插件和主题都可以添加一个额外的小工具,增加扩展性。

默认情况下,一个主题并不会支持小工具,需要主题开发者启用小工具功能并把小工具在相应的前台位置调用出来,这样用户才能在后台直接拖动生成侧边栏。

本文就来教你如何激活小工具功能,并且添加一个侧边栏,最后在前台显示出来。

注册侧边栏

默认的,后台外观下是没有 “小工具” 这个菜单按钮的,如果想要让他出现,就至少需要注册一个侧边栏,否则即使显示出来,也没有用。

注册一个侧边栏需要使用 register_sidebar() 函数,用法比较简单,只有一个属性,填上需要的信息就行了。

register_sidebar( array(
 'name' => __( '默认侧边栏', 'Bing' ),//侧边的名字
 'id' => 'widget_default',//侧边栏的 ID,注册多个侧边栏的时候不要重复
 'description' => __( '侧边栏的描述', 'Bing' ),//侧边栏的描述,会在后台显示
 'before_widget' => '<div class="widget %2$s">',//侧边栏里的小工具的开头代码,可以在里边使用 %2$s 来调用小工具的 ID,实现给每个小工具添加不同的样式
 'after_widget' => '</div>',//侧边栏里的小工具的结尾代码
 'before_title' => '<h3 class="widget-title">',//侧边栏里的小工具的标题的开头代码
 'after_title' => '</h3>'//侧边栏里的小工具的标题的结尾代码
) );

运用上边的例子代码,就能创建出一个侧边栏,外观下也显示 “小工具” 按钮了。

WordPress中使主题支持小工具以及添加插件启用函数

在这个侧边栏里,用户就可以自由的添加小工具了。复制代码,还可以创建更多的侧边栏。

调用侧边栏

光注册是没有意义的,用户添加之后,还要把小工具显示在前台才可以,这就用到了 dynamic_sidebar() 函数。

一般情况下,我们需要先判断一下小工具区域内是否添加了小工具,如果添加了,则显示小工具,否则提示用户添加小工具。判断侧边栏里是否被添加了小工具需要使用 is_active_sidebar() 函数。

<?php
if( is_active_sidebar( 'widget_default' ) ){
 echo '<aside id="sidebar">';
  dynamic_sidebar( 'widget_default' );
 echo '</aside>';
}else{
 echo '<p>请设置小工具</p>';
}
?>

非常简单吧,调用好后,前台的小工具就会按照注册时给出的格式一个一个的输出了。

添加插件启用函数
register_activation_hook() 可以让你添加一个函数,这个函数会在指定插件启用时执行,一般用于插件开发。

用法

register_activation_hook( $file, $function );

参数

$file

(字符串)(必须)需要在启用时执行函数的插件的主文件路径,如果是当前插件,直接写 __FILE__ 即可。

$function

(回调函数)(必须)执行的函数。

例子

function Bing_myplugin_activate(){
 global $wpdb;
 $wpdb->query( '' );//创建一些数据表
}
register_activation_hook( __FILE__, 'Bing_myplugin_activate' );

其它

此函数位于:wp-includes/plugin.php

PHP 相关文章推荐
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
PHP超级全局变量数组小结
Oct 04 PHP
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
May 09 PHP
php实现统计网站在线人数的方法
May 12 PHP
php支持断点续传、分块下载的类
May 02 PHP
PHP实现大数(浮点数)取余的方法
Feb 18 PHP
php提交表单时保留多个空格及换行的文本样式的方法
Jun 20 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP实现登录验证码校验功能
May 17 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
Aug 07 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
Dec 22 #PHP
PHP使用mkdir创建多级目录的方法
Dec 22 #PHP
PHP按指定键值对二维数组进行排序的方法
Dec 22 #PHP
php删除数组中重复元素的方法
Dec 22 #PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 #PHP
PHP内核探索之解释器的执行过程
Dec 22 #PHP
PHP内核探索之变量
Dec 22 #PHP
You might like
php下删除字符串中HTML标签的函数
2008/08/27 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
Java 生成随机字符的示例代码
2021/01/13 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python抓取电影天堂电影信息的代码
2016/04/07 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
python内置模块collections知识点总结
2019/12/19 Python
Python unittest框架操作实例解析
2020/04/13 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
毕业典礼主持词大全
2014/03/26 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
MySQL的存储过程和相关函数
2022/04/26 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL
Go语言编译原理之变量捕获
2022/08/05 Golang