0

オプションパネルを使用してWPテーマを作成しましたが、小さな問題があります。

以下のコードを見ると、2つのチェックボックス(type = "radio")があります。問題は、オプションページを更新した後、これらのチェックボックスがオプションを保持しないことですが、変更が表示されるため、データベースに追加されます。フロントエンドで。

public static function optionsframework_slider_function($id,$std,$oldorder,$order,$int){

    $data = get_option(OPTIONS);

    $slider = '';
    $slide = array();
    $slide = $data[$id];

    if (isset($slide[$oldorder])) { $val = $slide[$oldorder]; } else {$val = $std;}

    //initialize all vars
    $slidevars = array('type', 'title', 'desc', 'content');

    foreach ($slidevars as $slidevar) {
        if (!isset($val[$slidevar])) {
            $val[$slidevar] = '';
        }
    }

    //begin slider interface    
    if (!empty($val['title'])) {
        $slider .= '<li><div class="slide_header"><strong>'.stripslashes($val['title']).'</strong>';
    } else {
        $slider .= '<li><div class="slide_header"><strong>Slide '.$order.'</strong>';
    }

    $slider .= '<input type="hidden" class="slide pixy-input order" name="'. $id .'['.$order.'][order]" id="'. $id.'_'.$order .'_slide_order" value="'.$order.'" />';

    $slider .= '<a class="slide_edit_button" href="#">Edit</a></div>';

    $slider .= '<div class="slide_body">';

    $slider .= '<label>Slide Type</label>';
    $slider .= '
    <div class="slide pixy-checkbox">
    <input class="slide pixy-input pixy-slider-type" name="'. $id .'['.$order.'][type]" type="radio" value="html"><div>HTML Slide</div>
    <input class="slide pixy-input pixy-slider-type" name="'. $id .'['.$order.'][type]" type="radio" value="video"><div>Video/ Image Wide Slide</div>
    </div>
    ';


    $slider .= '<label>Slide Title</label>';
    $slider .= '<input class="slide pixy-input pixy-slider-title" name="'. $id .'['.$order.'][title]" id="'. $id .'_'.$order .'_slide_title" value="'. stripslashes($val['title']) .'" />';

    $slider .= '<label>Slide Description</label>';
    $slider .= '<input class="slide pixy-input" name="'. $id .'['.$order.'][desc]" id="'. $id .'_'.$order .'_slide_desc" value="'. $val['desc'] .'" />';

    $slider .= '<label>Slide Content</label>';
    $slider .= '<textarea class="slide pixy-input" name="'. $id .'['.$order.'][content]" id="'. $id .'_'.$order .'_slide_content" cols="8" rows="8">'.stripslashes($val['content']).'</textarea>';

    $slider .= '<a class="slide_delete_button" href="#">Delete</a>';
    $slider .= '<div class="clear"></div>' . "\n";

    $slider .= '</div>';
    $slider .= '</li>';

    return $slider;
}

チェックボックスのコードは次のとおりです(*上記のコードにあります):

$slider .= '<label>Slide Type</label>';
        $slider .= '
        <div class="slide pixy-checkbox">
        <input class="slide pixy-input pixy-slider-type" name="'. $id .'['.$order.'][type]" type="radio" value="html"><div>HTML Slide</div>
        <input class="slide pixy-input pixy-slider-type" name="'. $id .'['.$order.'][type]" type="radio" value="video"><div>Video/ Image Wide Slide</div>
        </div>
        ';

フロントエンドのスライダーを印刷するコードは次のとおりです。

<?php
            $slides = $data['pixy_pixyGallery_slider'];
            if($slides) {
                foreach ($slides as $slide) {
                    echo '<li data-type="'.$slide['type'].'" data-title="'.$slide['title'].'" data-caption="'.$slide['desc'].'">';
                    echo do_shortcode( $slide['content'] );
                    echo '</li>';
               }
            }
            ?>

ありがとうございました。

4

1 に答える 1

1

何かのようなもの?

$slider .= '<label>Slide Type</label>';
$slider .= '<div class="slide pixy-checkbox">';

$slider .= '<input class="slide pixy-input pixy-slider-type" name="'. $id .'['.$order.'][type]" type="radio" value="html"';
if($order=='html'){ $slider .= 'checked="checked">'; }else{ $slider .= '>' }
$slider .="<div>HTML Slide</div>";

$slider .= '<input class="slide pixy-input pixy-slider-type" name="'. $id .'['.$order.'][type]" type="radio" value="video"';
if($order=='video'){ $slider .= 'checked="checked">'; }else{ $slider .= '>' }
$slider .= '<div>Video/ Image Wide Slide</div>';
$slider .= '</div>';

これは、$ orderの値に依存して、プリセット値に設定されているかどうかを確認しますか?あなたはそれをチェックするためにこの値を知る必要があります!

または、オプション値をチェックするように設定します(1を設定した場合)?どちらが簡単です。

マーティ

于 2012-06-22T14:58:18.163 に答える