2012-06-22 4 views
0

옵션 패널을 사용하여 WP 테마를 구축했으며 작은 문제가 있습니다.확인란을 계속 선택하려면 어떻게해야합니까?

아래 코드를보고있는 경우 두 개의 확인란 (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; 
} 

체크 박스에 대한 코드가 (*이 위 코드에서 발견 될 수있다)되어

<?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>'; 
       } 
      } 
      ?> 

: 여기

$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> 
     '; 

은 프론트 엔드에서 슬라이더를 출력 코드는 고맙습니다.

+0

옵션 값을 테스트하고 필요한 경우'checked = "yes"'를 인쇄하지 않는 이유는 무엇입니까? –

답변

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로 설정 한 경우)? 어느 것이 더 쉽습니다.

마티

+0

Marty, 너를 너무 잘 이해하지 못해서 나는 아직도 PHP를 배우고있다. 나는 슬라이드가 움직일 수 있기 때문에 ($ sortable) $ order에 미리 설정된 값이 있다고 생각하지 않는다. 귀하의 코드를 시도했으나 작동하지 않습니다. 어쩌면 나는 $ slidevars = array ('type', 'title', 'desc', 'content')에 뭔가를 추가해야한다. ?? – George

+0

프런트 엔드에 슬라이더를 인쇄하는 코드도 추가했습니다. – George

+0

옵션을 저장할 때 이것은 wordpress의 옵션 테이블에 저장됩니다. 모든 옵션에서 인쇄를하면됩니다. $ options = get_option ('YourOptionName'); print_r ($ options); 그런 다음 라디오 버튼의 옵션 이름을 찾으십시오. 그 값을 저장하는 데 사용한 이름과 값 쌍인 경우 위의 코드를 사용하여 이름, 값 쌍을 찾은 다음 이름을 찾기 위해 위의 코드를 변경 한 다음 확인을 수행해야합니다 ($ youroptionname == 'html') 또는 비디오와 같은 항목이 표시되면 checked = "checked"를 처리 할 수 ​​있습니다. – Marty

관련 문제