无论是否选中复选框,图像都会被删除

时间:2013-02-28 14:14:30

标签: wordpress checkbox

我有一个问题,我正在尝试解决,但没有用,因为PHP真的不是我的领域。我已经搜索了论坛并找到了一些类似问题的解决方案,但我无法开始工作。

我创建了一个主题选项页面,您可以在此处使用。上传要在网站上使用的徽标。我创建了一个复选框,如果选中复选框,则要删除徽标。无论如何,当我单击保存更改时,徽标将被删除,但无论我是否选中了复选框。

这是我的代码:

// LOGO
function logo_setting() {
    $options = get_option('theme_options');
    if (empty($options['logo'])) :
        $options['logo'] = '';
    else :
        echo "<img src='{$options['logo']}' width='205px' /><br>";

        //DELETE OPTION
        if (!isset( $options['del_logo'] ) ) :
                $options['del_logo'] = '';
                echo "<br>Remove logo?&nbsp;";
                ?> <input type="checkbox" id="del_logo" name="theme_options[del_logo]" value="1" <?php checked( true, $options['del_logo'] ); ?> /><?php

                echo "<br>If logo is removed, Site Title will be used.";
            else :
                $options = get_option('theme_options');
                $options['logo'] = '';
                update_option('theme_options', $options);
                echo "Logo removed";
        endif;
        $options['del_logo'] = ( $options['del_logo'] == 1 ? 1 : 0 );
        return $options;

    endif;
    echo "<input type='file' name='logo' />";
}

我希望有人可以向我解释我做错了什么以及我应该如何正确地做到这一点。

1 个答案:

答案 0 :(得分:1)

OP写道:

  

解决方案:

function logo_setting() {
    $options = get_option('theme_options');
    if (empty($options['logo'])) :
    $options['logo'] = '';
    echo "Site title is used.<br>";
    else :
    echo "<img src='{$options['logo']}' width='205px' /><br>";
    endif;  
    echo "<input type='file' name='logo' />";

    if (empty($options['hide_logo'])) :
    $options['hide_logo'] = '';
    endif;
    echo '<br><br>Show site title instead of logo?&nbsp;<input name="theme_options[hide_logo]" id="hide_logo" type="checkbox" value="1" ' . checked( 1, $options['hide_logo'], false ) . ' />';
}
     

在html中:

 <?php if (empty($options['logo']) || isset($options['hide_logo'])) :
    bloginfo('name');
else : ?>
    <img src="<?php echo $options['logo']; ?>" alt="Logo" />
<?php endif; ?>