各位插件开发者,请注意适配一下 V8.9 新版主题-zibll综合交流社区-zibll子比主题-zibll子比社区

各位插件开发者,请注意适配一下 V8.9 新版主题

子比主题 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;
}

参考教程

官网的教程也已经同步更新了,如果还有不明白的地方,请再次查看以下教程:

手把手教你开发zibll附加插件-附空白插件模板及AI SKILL【插件开发入门】

请登录后发表评论

    没有回复内容