it-swarm-vi.tech

Làm cách nào tôi có thể hiển thị/ẩn nội dung nhất định dựa trên trường Tùy chọn chủ đề?

Tôi đang xây dựng trang Tùy chọn chủ đề cho chủ đề của mình và tôi đã quản lý để phần lớn trang hoạt động tốt. Nhưng bây giờ tôi đang cố gắng hiển thị và ẩn một số phần nhất định trong chủ đề của mình dựa trên hộp kiểm đơn giản. Một ví dụ:

Hiển thị thanh trượt nội dung đặc trưng? - Có không

Khi người dùng chọn có, tôi muốn kích hoạt đoạn mã sau trong một mẫu nhất định của chủ đề của mình:

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

Vậy làm thế nào tôi có thể bọc mã này để nó chỉ hiển thị khi nhấp vào Có? Tôi nghĩ đó là một loại tuyên bố có điều kiện nhưng bây giờ tôi có ý tưởng làm thế nào để tiếp cận điều này. Vì tôi không thể viết php, tôi cần một số trợ giúp về vấn đề này :) Tên của tùy chọn được gọi là bpslick_featured.

Cảm ơn trước!

1
Bowe Frankema

@ Bowe

Bạn sẽ cần tạo một mảng trong chức năng tùy chọn của mình cho hộp kiểm và đặt cho nó một trạng thái mặc định và gán loại "hộp kiểm" cho nó. Đây là một ví dụ giả sử bạn đã có sẵn mã cho bảng quản trị

<?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> 

Tiếp theo thêm chức năng trong hàm.php gọi thanh trượt nếu hộp được chọn.

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

?>

Mã này chưa được kiểm tra để đảm bảo nó hoạt động chính xác như vậy nhưng có nghĩa là hiển thị một ví dụ cho việc sử dụng tùy chọn hộp kiểm trong chủ đề của bạn.

2
Chris_O