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,这就是输出始终为真的原因。

我相信正确的功能如下:

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