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 相关文章推荐
Smarty Foreach 使用说明
Mar 23 PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
PHP原生函数一定好吗?
Dec 08 PHP
php foreach如何跳出两层循环(详解)
Nov 05 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
对于Form表单reset方法的新认识
2014/03/05 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
对于Python的框架中一些会话程序的管理
2015/04/20 Python
python回调函数用法实例分析
2015/05/09 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Windows中安装使用Virtualenv来创建独立Python环境
2016/05/31 Python
Python卸载模块的方法汇总
2016/06/07 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
Python实现的微信好友数据分析功能示例
2018/06/21 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
用python制作个音乐下载器
2021/01/30 Python
Java中compareTo和compare的区别
2016/04/12 面试题
小学生自我评价范例
2013/09/24 职场文书
应用化学专业本科生求职信
2013/09/29 职场文书
求职信内容考虑哪几点
2013/10/05 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
委托书英文
2015/01/28 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
功夫熊猫观后感
2015/06/10 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python