子比主题 V8.9 更新了核心的小工具模块创建框架函数,增加了大量的功能,并简化了小工具函数的调用逻辑
原则上我们已经尽量兼容了之前的用法,但我发现仍然有部分插件创作者在使用较老的开发方式,这会导致用户更新 V8.9 之后出现小工具消失等多种问题。
所以请插件开发者按照最新的规范,更新一下您的插件。
最重要的操作
最早的一部分开发者在使用主题的 CSF 后台框架时,会把主题CSF 目录下的所有文件拷贝至插件。这种方法是错误的,并且我已经在之前的帖子中说明过,这种方式是不可取的。
但我发现仍然有部分开发者在使用这种方式,所以请一定要修改。如果您需要使用主题的后台 CSF 框架,只需要使用after_setup_theme钩子将您的框架包裹起来即可。
V8.9更新内容
V8.9 更新了小工具模块的核心框架函数,主要更新内容如下:请开发者更新一下即可
1:之前我们在教程中说到,如果要使用主题的 CSF 框架,需要将函数挂载到 zib_require_end 钩子下,从 V8.9 版本开始,我们建议将此类函数挂钩在 after_setup_theme 钩子下。当然这个不改也没有关系,推荐更改,更加规范!
2: 之前在小工具模块的渲染函数中,我们建议使用Zib_CFSwidget::show_class($instance); 作为显示判断。更新主题后,我们不需要再次进行判断。
如果我们需要额外添加显示判断,只需要新增一个函数,以“小工具的 key 加 _is_show”结尾作为判断即可,如果reture false 则为不显示此模块。
3:在之前的小工具渲染后中,我们要添加 Zib_CFSwidget::echo_before($instance); 以及 Zib_CFSwidget::echo_after($instance); 函数,现在不需要了,直接删除即可。
最新示例
最新的创建小工具的更加简单了,以下是最新的示例:
/**
* 使用CSF框架添加小工具示例
*/
function zibll_additional_demo01_widget_create_demo1()
{
//小工具唯一标识,请修改为自己的,同时也是此小工具的内容获取函数的函数名
$widget_key = 'zibll_additional_demo01_demo1_widget';
Zib_CFSwidget::create($widget_key, array(
'title' => 'zibll附加插件演示模块示例1',
'zib_layout' => true, //是否启用模块背景、间距等布局选项
'zib_title' => true, //是否启用标题配置项
'zib_affix' => true, //是否启用侧栏浮动配置项
'zib_show' => true, //是否启用显示控制配置项
'zib_animation_in' => true, //是否启用入场动画配置项
'description' => '这是一个zibll主题附加插件的小工具演示示例,可以在这里添加自己的小工具内容和配置参数。',
'reminder' => '', //添加此模块的重要提醒
'fields' => array(
array(
'id' => 'xxx_text', //id为参数唯一标识,只能为小写字母、数字、下划线组成,不能有空格
'title' => '参数标题',
'default' => '默认值',
'type' => 'text', //text为文本框类型,还有很多类型可选
'desc' => '这里是参数的描述信息',
),
/**
* 这里可以继续添加更多配置项
* csf函数使用示例可参考主题的.../zibll/inc/options/admin-options.php文件
*/
),
));
}
add_action('after_setup_theme', 'zibll_additional_demo01_widget_create_demo1');
/**
* 小工具内容输出函数示例
* 注意:函数名必须和上面Zib_CFSwidget::create()中第一个参数一致
*/
function zibll_additional_demo01_demo1_widget($args, $instance)
{
//获取参数示例
$xxx_text = $instance['xxx_text'] ?? '默认值';
//这里是小工具的输出内容
echo '<div class="zib-widget c-yellow">模块内容输出示例:' . esc_html($xxx_text) . '</div>';
}
/**
* 模块是否显示控制
* 函数名规范为:上面Zib_CFSwidget::create()中第一个参数加‘_is_show’后缀
* 如果返回false,则不显示该小工具
* 默认请返回$is_show
*/
function zibll_additional_demo01_demo1_widget_is_show($is_show, $args, $instance)
{
if (empty($instance['xxx_text'])) {
return false;
}
return $is_show;
}
参考教程
官网的教程也已经同步更新了,如果还有不明白的地方,请再次查看以下教程:




![表情[ciya]-zibll子比社区](https://www.zibll.top/wp-content/themes/zibll/img/smilies/ciya.gif)
![表情[leiben]-zibll子比社区](https://www.zibll.top/wp-content/themes/zibll/img/smilies/leiben.gif)

![表情[xigua]-zibll子比社区](https://www.zibll.top/wp-content/themes/zibll/img/smilies/xigua.gif)


