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初学入门
Nov 19 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
Sep 23 PHP
php中require和require_once的区别说明
Feb 27 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
php抛出异常与捕捉特定类型的异常详解
Oct 26 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
Linux下 php7安装redis的方法
Nov 01 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通过修改header强制图片下载的方法
2015/03/24 PHP
php 类自动载入的方法
2015/06/03 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
vue项目初始化到登录login页面的示例
2019/10/31 Javascript
vue实现移动端图片上传功能
2019/12/23 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
python获取本地计算机名字的方法
2015/04/29 Python
python通过ssh-powershell监控windows的方法
2015/06/02 Python
python通过文件头判断文件类型
2015/10/30 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
生产现场工艺工程师岗位职责
2013/11/28 职场文书
写演讲稿所需要注意的4个条件
2014/01/09 职场文书
班主任工作年限证明
2014/01/12 职场文书
教师档案管理制度
2014/01/23 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
法制工作总结2015
2015/07/23 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang