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类
Oct 09 PHP
smtp邮件发送一例
Oct 09 PHP
修改了一个很不错的php验证码(支持中文)
Feb 14 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
制作个性化的WordPress登陆界面的实例教程
May 21 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
PHP 中使用ajax时一些常见错误总结整理
Feb 27 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
laravel5环境隐藏index.php后缀(apache)的方法
Oct 12 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
php使用curl访问https示例分享
2014/01/17 PHP
PHP中的替代语法简介
2014/08/22 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
python动态性强类型用法实例
2015/05/09 Python
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
python实现傅里叶级数展开的实现
2018/07/21 Python
django 外键model的互相读取方法
2018/12/15 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
Keras设置以及获取权重的实现
2020/06/19 Python
请介绍一下Ant
2016/07/22 面试题
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
大学生职业生涯规划书模版
2013/12/30 职场文书
商务会议邀请函
2014/01/09 职场文书
监考失职检讨书
2015/01/26 职场文书
安全责任书
2015/01/29 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers