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 Undefined index和Undefined variable的解决方法
Mar 27 PHP
php学习 函数 课件
Jun 15 PHP
简单PHP上传图片、删除图片实现代码
May 12 PHP
使用swoole扩展php websocket示例
Feb 13 PHP
PHP写的资源下载防盗链类分享
May 12 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
PHP实现获取中英文首字母
Jun 19 PHP
PHP代码实现表单数据验证类
Jul 28 PHP
php常量详细解析
Oct 27 PHP
php四种定界符详解
Feb 16 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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实现上传多文件示例代码
2017/02/20 PHP
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
Python设计模式之单例模式实例
2014/04/26 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
Python实现大文件排序的方法
2015/07/10 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
对Python中plt的画图函数详解
2018/11/07 Python
python进行TCP端口扫描的实现
2018/12/21 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python 求数组局部最大值的实例
2019/11/26 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
中等生评语大全
2014/05/04 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
2014年稽查工作总结
2014/12/20 职场文书
教师网络培训心得体会
2016/01/09 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
解决vue中provide inject的响应式监听
2022/04/19 Vue.js