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 01 PHP
php动态实现表格跨行跨列实现代码
Nov 06 PHP
解析CI的AJAX分页 另类实现方法
Jun 27 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
PHP实现事件机制实例分析
Jun 26 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
Yii框架自定义数据库操作组件示例
Nov 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
剧场版动画《PSYCHO-PASS 3 FIRST INSPECTOR》3月27日日本上映!
2020/03/06 日漫
使用PHP维护文件系统
2006/10/09 PHP
PHP 中执行系统外部命令
2006/10/09 PHP
php创建多级目录代码
2008/06/05 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
php三元运算符知识汇总
2015/07/02 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
javascript学习之json入门
2016/12/22 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
python常用函数详解
2016/09/13 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
python获取中文字符串长度的方法
2018/11/14 Python
Python制作exe文件简单流程
2019/01/24 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
如何获取Python简单for循环索引
2019/11/21 Python
Python 寻找局部最高点的实现
2019/12/05 Python
django rest framework 过滤时间操作
2020/07/12 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
公务员平时考核实施方案
2014/03/11 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
联村联户简报
2015/07/21 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
变长双向rnn的正确使用姿势教学
2021/05/31 Python