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 相关文章推荐
杏林同学录(六)
Oct 09 PHP
PHP提取中文首字母
Apr 09 PHP
PHP分页效率终结版(推荐)
Jul 01 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
php 邮件发送问题解决
Mar 22 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 PHP
thinkPHP实现签到功能的方法
Mar 15 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
laravel 框架配置404等异常页面
Jan 07 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 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 email邮箱正则
2008/10/08 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
详解PHP中的序列化、反序列化操作
2017/03/21 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
2017/05/18 Python
python复制文件到指定目录的实例
2018/04/27 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
Pytorch之finetune使用详解
2020/01/18 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
python默认参数调用方法解析
2020/02/09 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
Servlet方面面试题
2016/09/28 面试题
寄语十八大感言
2014/02/07 职场文书
社团活动总结
2014/04/28 职场文书
诚信贷款承诺书
2014/05/30 职场文书
大学生迟到检讨书500字
2014/10/17 职场文书
初中物理教学反思
2016/02/19 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS
什么是Python装饰器?如何定义和使用?
2022/04/11 Python
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android