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 配置open_basedir 让各虚拟站点独立运行
Nov 12 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
Laravel validate error处理,ajax,json示例
Oct 25 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新特性之G方法的使用
2014/06/19 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
php微信开发之谷歌测距
2018/06/14 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
jquery 学习之二 属性(类)
2010/11/25 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
Python爬取网易云音乐热门评论
2017/03/31 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
python 如何调用远程接口
2020/09/11 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
客户服务经理岗位职责
2014/01/29 职场文书
中介公司区域经理岗位职责范本
2014/03/02 职场文书
新学期教师寄语
2014/04/02 职场文书
模具专业求职信
2014/06/26 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
高中教师个人总结
2015/02/10 职场文书
Java反应式框架Reactor中的Mono和Flux
2021/07/25 Java/Android
选购到合适的激光打印机
2022/04/21 数码科技