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 imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
php 提速工具eAccelerator 配置参数详解
May 16 PHP
php 代码优化之经典示例
Mar 24 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
php实现图片等比例缩放代码
Jul 23 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 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
thinkPHP下ueditor的使用方法详解
2015/12/26 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
JavaScript实现无穷滚动加载数据
2017/05/06 Javascript
如何在vue中使用ts的示例代码
2018/02/28 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
python妙用之编码的转换详解
2017/04/21 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
Python for i in range ()用法详解
2020/09/18 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
Python json读写方式和字典相互转化
2020/04/18 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
浅谈django 重载str 方法
2020/05/19 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
泰国健康和美容服务预订网站:GoWabi
2019/06/03 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
个人自我评价和职业目标
2014/01/24 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
自查自纠工作总结
2014/10/15 职场文书
离婚案件答辩状
2015/05/22 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书
goland 清除所有的默认设置操作
2021/04/28 Golang
详解Vue slot插槽
2021/11/20 Vue.js