我正在开发一个 wordpress 主题,并决定使用 WP Theming 的 Options-Framework 为我的主题创建一个选项面板。实现工作正常,但现在我想为图像滑块创建一个自己的选项类型。此选项应包含四个选项(图像上传、文本区域和 2x 文本输入)的数组。像这样:
$options[] = array(
'name' => __('Slider - Test', 'lbprojects'),
'desc' => __('Test the slider functionality.', 'lbprojects'),
'id' => 'slider1',
'std' => array( 'image' => '', 'text' => 'Text', 'title' => 'Titel', 'link' => 'Link' ),
'type' => 'slider');
我复制了“背景”选项的代码块,它也加入了某些表单元素。但是下面的代码不能正常工作。输入正在显示并包含预定义的值,但在保存操作时,字段会重置并且选项不会被保存。我还看了一下这个函数,它实际上是在保存,但不知道要改变什么。
// Slider
case 'slider':
$slider = $val;
// Slider Image - New AJAX Uploader using Media Library
if (!isset($slider['image'])) {
$slider['image'] = '';
}
$output .= optionsframework_medialibrary_uploader( $value['id'], $slider['image'], null, '',0,'image');
$class = 'of-background-properties';
if ( '' == $slider['image'] ) {
$class .= ' hide';
}
$output .= '<div class="' . esc_attr( $class ) . '">';
// Title
$output .= '<input id="' . esc_attr( $value['id'] . '_title' ) . '" class="of-input" name="' . esc_attr( $option_name . '[' . $value['id'] . '][title]' ) . '" type="text" value="' . $slider['title'] . '" />';
// Link
$output .= '<input id="' . esc_attr( $value['id'] . '_link' ) . '" class="of-input" name="' . esc_attr( $option_name . '[' . $value['id'] . '][link]' ) . '" type="text" value="' . $slider['link'] . '" />';
// Text
$rows = '5';
if ( isset( $value['settings']['rows'] ) ) {
$custom_rows = $value['settings']['rows'];
if ( is_numeric( $custom_rows ) ) {
$rows = $custom_rows;
}
}
$val = stripslashes( $val );
$output .= '<textarea id="' . esc_attr( $value['id'] . '_text' ) . '" class="of-input" name="' . esc_attr( $option_name . '[' . $value['id'] . '][text]' ) . '" rows="' . $rows . '">' . $slider['text'] . '</textarea>';
$output .= '</div>';
break;
有谁知道如何解决这个问题并将自定义类型添加到选项面板?我是否必须更改框架的任何其他功能(例如清理等)?
谢谢卢卡斯