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通过文件头检测文件类型通用代码类(zip,rar等)
Oct 19 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
支持中文的php加密解密类代码
Nov 27 PHP
递归实现php数组转xml的代码分享
May 14 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
Jun 17 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
PHP入门教程之操作符与控制结构流程详解
Sep 09 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
Zend Framework路由器用法实例详解
Dec 11 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 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
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
JS 字符串连接[性能比较]
2009/05/10 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
AngularJS入门教程一:路由用法初探
2017/05/27 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
微信小程序拖拽排序列表的示例代码
2020/07/08 Javascript
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python中实现对list做减法操作介绍
2015/01/09 Python
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
python中的闭包用法实例详解
2015/05/05 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
python利用线程实现多任务
2020/09/18 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
.NET程序员的几道面试题
2012/06/01 面试题
警示教育活动总结
2014/05/05 职场文书
学习之星事迹材料
2014/05/17 职场文书
个人自荐材料
2014/05/23 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
分析并发编程之LongAdder原理
2021/06/29 Java/Android
为Centos安装指定版本的Docker
2022/04/01 Servers