WordPress小工具添加自定义选项

2020年05月03日 396点热度 0人点赞 0条评论

需求:在小工具设置页面中,给每个小工具添加一些选项

添加了两个钩子,分别为in_widget_form和widget_update_callback(添加第一个应该就行了)

$this->loader->add_action('in_widget_form', $plugin_admin, 'add_widget_option', 10, 3);
$this->loader->add_filter('widget_update_callback', $plugin_admin, 'update_widget_option', 10, 3);

第一个钩子的作用是在设置页面的相应表单中添加所需的输入框

public function add_widget_option($widget, $return, $instance)
{
    if (isset($instance['my_custom_key'])) $option = $instance['my_custom_key']; else $option = 0;
    echo '<p><input type="checkbox" id="' . $widget->get_field_id('my-custom-key') . '" name="' . $widget->get_field_name('my_custom_key') . '" value="1" ' . checked($option, 1, false) . '/>';
    echo '<label for="' . $widget->get_field_id('my-custom-key') . '">' . __('这是一个自定义选项' , 'likole-toolkit') . '</label></p>';
}

第二个钩子的作用是在更新时稍微处理下自定义信息

public function update_widget_option($instance, $new_instance, $old_instance)
{
    if (isset($new_instance['my_custom_key']) && $new_instance['my_custom_key']) {
        $instance['my_custom_key'] = 1;
    } else {
        $instance['my_custom_key'] = false;
    }
    return $instance;
}

likole

人能常清静,天地悉皆归

文章评论