WordPress中使主题支持小工具以及添加插件启用函数

5年以前  |  阅读数:789 次  |  编程语言:PHP 

让主题支持小工具
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>'//侧边栏里的小工具的标题的结尾代码
    ) );

运用上边的例子代码,就能创建出一个侧边栏,外观下也显示 "小工具" 按钮了。

20151222153501774.png \(335×481\)

在这个侧边栏里,用户就可以自由的添加小工具了。复制代码,还可以创建更多的侧边栏。

调用侧边栏

光注册是没有意义的,用户添加之后,还要把小工具显示在前台才可以,这就用到了 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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
文件下载
贪吃蛇
获取IMEI
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例