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表单转换textarea换行符的方法
Sep 10 PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
PHP输出缓存ob系列函数详解
Mar 11 PHP
解决cPanel无法安装php5.2.17
Jun 22 PHP
PHP实现自动登入google play下载app report的方法
Sep 23 PHP
php中chdir()函数用法实例
Nov 13 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 13 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 checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
php计算整个目录大小的方法
2015/06/19 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
使用Python抓取模板之家的CSS模板
2015/03/16 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
python format 格式化输出方法
2018/07/16 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
厂长助理岗位职责
2013/12/27 职场文书
护士自我评价范文
2014/01/25 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
政协常委会议主持词
2015/07/03 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
Mysql如何查看是否使用到索引
2022/12/24 MySQL