0

次の関数ファイルがありますhttp://pastebin.ca/2475191

チェックボックスがチェックされているかどうかを確認するためにif条件を付けようとしています。チェックボックスを見つけることができるフィールドはこれです

$this->settings['slider'] = array(
    'section' => 'general',
    'title'   => __( 'Enable/Disable Slider' ),
    'desc'    => __( 'Please check the checkbox ' ),
    'type'    => 'checkbox',
    'std'     => 1 // Set to 1 to be checked 
);

私のバックエンドでは、value="1"変更されていないことがわかりcheckbox="checked"ます。チェックすると追加されます。

最初に、値が index.php にエコーされているかどうかを確認しようとしました

<?php 
 $settings = get_option('mytheme_options');
 $slider = $settings['slider']; // for echoing the value
 var_dump($slider);
 echo $slider;
?>

そして、チェックボックスがバックエンドでチェックされているときは echoed を取得し、チェックされてstring(1) "1" 1いないときNotice: Undefined index: sliderは新しい行の直後に取得しますNULL

このような条件を追加しようとすると

<?php 
  $settings = get_option('mytheme_options');
  $slider = $settings['slider'];
  if ($slider = 1) { ?>
    <div.....HTML
  <?php } else {echo "slider disabled";} ?>

チェックボックスがチェックされていない場合、チェックボックスがチェックされてNotice: Undefined index: sliderいるとスライダーが表示されたままにANDなり、エラーが発生せず、スライダーが表示されたままになります。

私を助けてください、私はワードプレスの初心者で、できるだけ多くのエラーを学び、修正しようとしています.

4

1 に答える 1

2
if (isset( $settings['slider'])) { ?>
    <div.....HTML
  <?php } else {echo "slider disabled";} ?>

2 つの値をチェックするには

== (比較演算子) または ===(恒等演算子) = は代入演算子

これは value を割り当てることを意味します。

$slider = 1 // it will assign 1 as an integer value to $slider

/*****************************/

$slider =1;
$slider == 1 // check if $slider value is one both 1 (integer) and "1" a string will return true

/*****************************/


$slider =1;
$slider === "1" //  check if $slider value is 1 and its type is string.  here it will return false as value is of $slider is one but type is int not string
于 2013-11-10T14:37:54.207 に答える