0

Wordpressテーマのオプションを切り替えるための簡単なチェックボックスを実装しようとしていますが、機能しません。これが私が持っているものです:

フォームで...

<input type="checkbox" class="display-twitter" name="display-twitter" id="display-twitter" value="true"<?php if ( true == $options['display-twitter'] ) { echo ' checked="checked"'; } ?>> <?php _e( 'Display your Twitter Feed?', 'crate' ); ?>

入力をサニタイズする関数で...

function theme_options_validate( $input ) {  
        ...  
        $input['display-twitter'] = ( isset( $input['display-twitter'] ) ? false : true );  
        ...  
        return $input;  
}  

オプションを有効にするために最初にチェックボックスをオンにすると、すべて正常に機能します。でも、もう一度チェックすると、Notice: Undefined index: display-twitter ...投げられてしまいます。

何が得られますか?三項と何か関係がありますか?

4

1 に答える 1

0

isset関数を使用する必要はないと思います。これにより、変数が設定されていてNULLでないかどうかがチェックされますが、チェックボックスには常に2つの状態があるため、NULLになることはありません。そのため、出力は常にtrueになります。

正しい機能は次のようになります、私は信じています:

function theme_options_validate( $input ) {  
    ...  
    $input['display-twitter'] = ($input['display-twitter'] ? false : true        );  
    ...  
    return $input;  
}  
于 2013-03-06T09:07:47.537 に答える