大部分模版小工具都会有评论、分类、rss、最近文章等等传统的。
但是实际项目里,最近新建了一个历史类的网站,我希望右侧栏能展示子分类,比如栏目清朝,右侧希望显示清朝有名的历史人物(其实就是子分类),这个基本上所有主题的小工具都不能实现。
如下图,在woredpress后台分类,建立了三级分类。
假设我点击清朝这个分类,我希望右侧的分类里,展示清朝的重要事件和重要人物,最终效果图如下:
那么这个就要自己写小工具了,主题的小工具根本无法满足要求,那么就让我们开始吧,说明一下,本人虽然开发多年,但是并未接触过php,所以仅仅是非常简单得为了自己的项目实现而实现,没有任何扩展,仅仅是最简单的实现。
首先在网站目录下的wp-content/plugins文件,新建一个文件夹,可以自己定义名字,如下图我定义了一个child文件夹。
然后新建一个fenli.php文件,名字也可以自己取,我先贴的代码。
<?php
/*Plugin Name: 显示子分类
Description: 递归展示文章根分类下面的子分类
Version: 0.5
Author: shuanghei
Author URI: https://shuanghei.com
License: GPLv2
*/
?>
<?php
/*******************************************************************************
定一个类必须继承WP_Widget
*******************************************************************************/
?>
<?php
class Shuanghei_list_Child_Widget extends WP_Widget {
function __construct() {
parent::__construct(
// 插件ID
'shuanghei_list_child',
// 插件的名字
__('显示子分类', 'shuanghei' ),
// 插件的描述
array (
'description' => __( '归展示文章根分类下面的子分类', 'shuanghei' )
)
);
}
function form( $instance ) {
}
function update( $new_instance, $old_instance ) {
}
function widget( $args, $instance ) {
echo '我的插件';
}
}
?>
<?php
/*******************************************************************************
这是是注册插件
*******************************************************************************/
?>
<?php
function shuanghei_register_list_child_widget() {
register_widget( 'Shuanghei_list_Child_Widget' );
}
add_action( 'widgets_init', 'shuanghei_register_list_child_widget' );
?>
然后php文件放进刚才建立的文件夹,那么一个自己的插件就完成了,可以在wordpress后台看到插件信息。
点击启用后,去小工具页面,就看到你创建的小工具了。
是不是特简单?现在我说一下fenlei.php文件的主要内容。
新建一个类必须继承WP_Widget类,开头的注释的描述信息自己可以根据插件情况实际来写。
__construct()构造函数,也是写一个注释信息的,和类的备注一致即可。
function form()和function update()这两个函数,是用来在小工具里展现配置信息的。比如近期文章这个小工具,如下:
其中的三个选项就是在这两个函数里配置的,因为我的项目里不需要配置,所以也没有写代码,自然而来也相对简单点,所以也没做过多研究。
最重要的就是function widget()函数,里面的内容才是前台页面所展现的内容,当然这里也可以获得function form()函数传来的参数。
最后register方法就是注册小工具的,千万不能遗忘哦。
这里我贴一下我的function widget()里面实现的代码,核心就是用了wp自带的wp_list_cats方法,大家参考一下即可,因为基本上不可能会有同样的需求,大家请根据自己项目需求来写代码。