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(3) php 函数
Feb 15 PHP
PHP中4个加速、缓存扩展的区别和选用建议
Mar 12 PHP
php url路由入门实例
Apr 23 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
twig模板获取全局变量的方法
Feb 05 PHP
PHP Filter过滤器全面解析
Aug 09 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
php实现留言板功能(会话控制)
May 23 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 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
PHP实现Socket服务器的代码
2008/04/03 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
php常用hash加密函数
2014/11/22 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
javascript每日必学之循环
2016/02/19 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
python学习 流程控制语句详解
2016/06/01 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
Random 在 Python 中的使用方法
2018/08/09 Python
用Python实现读写锁的示例代码
2018/11/05 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
如何在python中实现线性回归
2020/08/10 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
测试工程师程序员求职信范文
2014/02/20 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
详解Apache SkyWalking 告警配置指南
2021/04/22 Servers
Redis基本数据类型String常用操作命令
2022/06/01 Redis
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS