私はこれが重複しているかもしれないことを知っていますが、私は以前の質問を理解することができませんでした。
設定ページにチェックボックスがあります。チェックボックスをオンにしてすべてを保存すれば、ページの最初の読み込みですべて問題ありません。チェックを外すと、次のようなエラーメッセージが表示されます。
Notice :未定義のインデックス:49行目の
dat_checkbox_field_0
内の.../wp-content/plugins/divi-auto-testimonials/admin/dat-options.php
value = '1'>
関数:
function dat_checkbox_field_0_render( ) {
$options = get_option( 'dat_settings' );
?>
<input type='checkbox' name='dat_settings[dat_checkbox_field_0]' <?php checked( $options['dat_checkbox_field_0'], 1 ); ?> value='1'>
<?php
}
行49は入力HTMLです。
このコードでも同じエラーが発生します。
$options = get_option( 'dat_settings' );
if( $options['dat_checkbox_field_0'] != '1' ) {
include_once "admin/notification.php";
}
私が理解していることから、値をnull
に設定する必要があると思いますが、それが正しいかどうか、また正しいかどうかは完全にはわかりません。
次のようにしてこれを修正できました。
function dat_checkbox_field_0_render( ) {
$options = get_option( 'dat_settings' );
$a = $options;
if (array_key_exists("dat_checkbox_field_0",$a))
{ } else {
$options['data_checkbox_field_0'] = false;
}
?>
<input type='checkbox' name='dat_settings[dat_checkbox_field_0]' <?php checked( $options['dat_checkbox_field_0'], 1 ); ?> value='1'>
<?php
}
$options = get_option( 'dat_settings' );
$options['dat_checkbox_field_0'] = empty( $options['dat_checkbox_field_0'] ) ? 0 : 1;
基本的に、変数が "空"の場合、つまり変数が設定されていない場合、またはfalseに等しい(0で修飾されている)場合は、0の値が割り当てられます。それから1の値が割り当てられます。
あるいは、同じ結果を得るために論理を逆にします(3項ステートメントで最初に来るのが真実の純粋主義者の場合)。
$options['dat_checkbox_field_0'] = !empty( $options['dat_checkbox_field_0'] ) ? 1 : 0;