it-swarm-ko.tech

테마 옵션 필드를 기반으로 특정 콘텐츠를 표시하거나 숨길 수있는 방법은 무엇입니까?

내 테마에 대한 테마 옵션 페이지를 만들고 있는데 대부분 잘 작동하도록했습니다. 하지만 지금은 간단한 체크 박스를 기반으로 내 테마의 특정 부분을 표시하거나 숨기려고합니다. 예 :

추천 콘텐츠 슬라이더 표시 - 예 아니오

사용자가 예를 선택하면 내 테마의 특정 템플리트에서 다음 코드를 사용 가능하게합니다.

<?php locate_template( array( 'includes/slider.php'), true ) ?>

그렇다면 어떻게이 코드를 래핑하여 예를 클릭 할 때만 표시 할 수 있습니까? 나는 그것이 일종의 조건문이라고 생각하지만, 이제 어떻게 접근해야하는지 생각해 왔습니다. 이후로 나는 이걸로 몇 가지 도움이 필요 PHP를 쓸 수 없다 :) 옵션의 이름은 bpslick_featured라고합니다.

미리 감사드립니다.

1
Bowe Frankema

@ 보우

체크 박스의 options 함수에 배열을 생성하고 id에 기본 상태를 지정하고 "checkbox"유형을 할당해야합니다. 다음은 관리자 패널에 이미 코드가 있음을 가정 한 샘플입니다.

<?php
// Set variables for the options panel
$themename = "your_theme_name";
$themeshortname = "yt";
$mythemeoptions = array();

//The Option function
function cool_theme_options() {
global $themename, $themeshortname, $mythemeoptions;

$themeoptions = array (

array( "name" => __('Show featured content slider','your_theme_name'),
"desc" => __('When checked, the slider will be added to the home page.','your_theme_name'),
"id" => "show_featured_slider",
"std" => "false",
"type" => "checkbox"
   ),
 );
}

//The Option Form

function my_cool_theme_admin() {

  global $themename, $themeshortname, $themeoptions;

  // Saved or Updated message
  if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings saved.</strong></p></div>';
  if ( $_REQUEST['reset'] ) echo '<div id="message" class="updated fade"><p><strong>'.$themename.' settings reset.</strong></p></div>';

  // The form
  ?>

  <div class="wrap">
  <h2><?php echo $themename; ?> Options</h2>

  <form method="post">

  <?php wp_nonce_field('theme-save'); ?>
  <table class="form-table">

  <?php foreach ($themeoptions as $value) {

    // Output the appropriate form element
    switch ( $value['type'] ) {

      case 'text':
      ?>

      <tr valign="top">
        <th scope="row"><?php echo $value['name']; ?>:</th>
        <td>
          <?php foreach ($value['options'] as $key=>$option) {
            if ($key == get_option($value['id'], $value['std']) ) {
              $checked = "checked=\"checked\"";
            } else {
              $checked = "";
            }
            ?>
            <input type="radio" name="<?php echo $value['id']; ?>" value="<?php echo $key; ?>" <?php echo $checked; ?> /><?php echo $option; ?><br />
          <?php } ?>
          <?php echo $value['desc']; ?>
        </td>
      </tr>
      <?php
      break;

      case "checkbox":
      ?>
      <tr valign="top">
        <th scope="row"><?php echo $value['name']; ?></th>
        <td>
          <?php
          if(get_option($value['id'])){
            $checked = "checked=\"checked\"";
          } else {
            $checked = "";
          }
          ?>
          <input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
          <?php echo $value['desc']; ?>
        </td>
      </tr>
      <?php
      break;

      default:
      break;
    }
  }
  ?>

  </table>

  <p class="submit">
    <input name="save" type="submit" value="Save changes" class="button-primary" />
    <input type="hidden" name="action" value="save" />
  </p>

  </form>

  <form method="post">
    <?php wp_nonce_field('theme-reset'); ?>
    <p class="submit">
      <input name="reset" type="submit" value="Reset" />
      <input type="hidden" name="action" value="reset" />
    </p>
  </form> 

그런 다음 상자가 체크되어 있으면 슬라이더를 호출하는 functions.php에 함수를 추가하십시오.

<?php

function cool_theme_slider_option() {
  // load the custom options
  global $themeoptions;
  foreach ($themeoptions as $value) {
    $$value['id'] = get_option($value['id'], $value['std']);
  }

     if ($show_featured_slider  == 'true') {

        locate_template( array( 'includes/slider.php'), true )

     }
} // end function

add_action('wp_head', 'cool_theme_slider_option');

?>

이 코드는 정확하게 작동하는지 확인하지 않았지만 테마에서 확인란 옵션을 사용하는 예를 보여줍니다.

2
Chris_O