it-swarm.dev

Jak lze zobrazit/skrýt určitý obsah na základě pole Možnosti motivu?

Stavím stránku s motivem motivu pro mé téma a podařilo se mi, aby většina z nich fungovala dobře. Ale teď se snažím ukázat a skrýt určité části mého tématu na základě jednoduchého zaškrtávacího políčka. Příklad:

Zobrazit posuvník doporučeného obsahu? - Ano ne

Když uživatel vybere ano, chci povolit následující kód v určité šabloně mého motivu:

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

Jak tedy mohu tento kód zabalit tak, aby se zobrazoval pouze po klepnutí na tlačítko Ano? Myslím, že je to nějaký podmíněný výrok, ale teď mám představu, jak k tomu přistupovat. Protože nemohu psát php, potřebuju s tím nějakou pomoc :) Jméno volby se nazývá bpslick_featured.

Díky předem!

1
Bowe Frankema

@ Bowe

Budete muset vytvořit pole ve funkci voleb pro zaškrtávací políčko a dát mu výchozí stav a přiřadit mu typ zaškrtávacího políčka. Zde je ukázka za předpokladu, že již máte kód pro admin panel

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

Dále přidejte funkci v function.php, která zavolá jezdce, pokud je políčko zaškrtnuto.

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

?>

Tento kód nebyl zkontrolován, aby se ujistil, že funguje přesně tak, jak je, ale měl ukázat příklad použití volby zaškrtávacího políčka ve vašem motivu.

2
Chris_O