1

私はワードプレスのテーマを開発しており、WP Theming の Options-Framework を使用してテーマのオプション パネルを作成することにしました。実装はうまくいきましたが、画像スライダー用に独自のオプション タイプを作成したいと考えています。このオプションには、4 つのオプション (画像のアップロード、テキストエリア、および 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');

特定のフォーム要素も結合する「background」オプションのコード ブロックをコピーしました。しかし、以下のコードは正しく動作しません。入力が表示され、事前定義された値が含まれていますが、保存アクションでフィールドがリセットされ、オプションは保存されません。また、実際に保存を行う関数も調べましたが、何を変更すればよいかわかりませんでした。

// 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;

この問題を解決してカスタムタイプをオプションパネルに追加する方法を知っている人はいますか? フレームワークの他の機能 (サニタイズなど) を変更する必要はありますか?

ありがとうルーカス

4

0 に答える 0