it-swarm-pt.tech

Como posso exibir/ocultar determinado conteúdo com base em um campo de opção de tema?

Estou construindo uma página de Opções de Tema para o meu tema e consegui que a maior parte funcionasse bem. Mas agora estou tentando mostrar e ocultar certas partes do meu tema com base em uma caixa de seleção simples. Um exemplo:

Mostrar o controle deslizante de conteúdo em destaque? - Sim não

Quando o usuário seleciona yes, eu quero ativar o seguinte código em um determinado template do meu tema:

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

Então, como eu posso quebrar esse código para que ele só mostra quando Sim é clicado? Eu acho que é algum tipo de declaração condicional, mas agora tenho a ideia de como abordar isso. Desde que eu não posso escrever php eu preciso de alguma ajuda com isso :) O nome da opção é chamado bpslick_featured.

Desde já, obrigado!

1
Bowe Frankema

@ Bowe

Você precisaria criar uma matriz na sua função de opções para a caixa de seleção e atribuir a ela um id como um estado padrão e atribuir o tipo de "caixa de seleção" a ela. Aqui está uma amostra supondo que você já tenha o código em vigor para o painel de administração

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

Em seguida, adicione a função em functions.php que chama o controle deslizante se a caixa estiver marcada.

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

?>

Este código não foi verificado para ter certeza de que funciona exatamente como está, mas destinado a mostrar um exemplo para usar uma opção de caixa de seleção no seu tema.

2
Chris_O