it-swarm-id.com

Bagaimana saya bisa menampilkan/menyembunyikan konten tertentu berdasarkan bidang Opsi Tema?

Saya sedang membangun halaman Opsi Tema untuk tema saya, dan saya berhasil membuatnya sebagian besar berfungsi dengan baik. Tapi sekarang saya mencoba untuk menunjukkan dan menyembunyikan bagian-bagian tertentu dalam tema saya berdasarkan kotak centang sederhana. Sebuah contoh:

Tampilkan bilah geser konten unggulan? - Ya Tidak

Ketika pengguna memilih ya saya ingin mengaktifkan kode berikut dalam templat tertentu dari tema saya:

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

Jadi bagaimana saya bisa membungkus kode ini sehingga hanya ditampilkan ketika Ya diklik? Saya pikir ini semacam pernyataan kondisional, tetapi sekarang saya punya ide bagaimana mendekati ini. Karena saya tidak dapat menulis php, saya perlu bantuan untuk ini :) Nama opsi ini disebut bpslick_featured.

Terima kasih sebelumnya!

1
Bowe Frankema

@ Bowe

Anda perlu membuat array di fungsi opsi Anda untuk kotak centang dan memberinya id status default dan menetapkan jenis "kotak centang" untuk itu. Berikut adalah contoh dengan asumsi Anda sudah memiliki kode untuk panel admin

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

Selanjutnya tambahkan fungsi di functions.php yang memanggil slider jika kotak dicentang.

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

?>

Kode ini belum dicentang untuk memastikan bahwa kode itu berfungsi sebagaimana mestinya tetapi dimaksudkan untuk menunjukkan contoh untuk menggunakan opsi kotak centang di tema Anda.

2
Chris_O