0

我有一个 CSS 手风琴的简码。其中一个属性是 $open 复选框的“选中”值。现在,如果他们键入 open=checked,它将通过 check="checked" 并且默认情况下该 div 是可见的。无论如何用实际的html值替换自定义值?例如,我希望用户能够使用“open=yes”并让它在 HTML 中传递“checked=checked”。

// TOGGLE BOXES
function sc_tog_boxes( $attr, $content = null ) {
    return '<ul class="togboxes">' . $content . '</ul>';
}
add_shortcode('togboxes', 'sc_tog_boxes');

function sc_tog_box( $atts , $content = null ) {

    // Attributes
    extract( shortcode_atts(
        array(
            'number' => '1',
            'heading' => 'you forgot the heading tag: heading="your heading"',
            'open' => '',
        ), $atts )
    );

    // Code
    return '<li><label for="' . $number . '">' . $heading . ' <span class="toggle-icon">[+/-]</span></label><input type="checkbox" name="a" id="' . $number . '" checked="' . $open . '"><div class="togbox">' . do_shortcode($content) . '</div></li>';
}
add_shortcode( 'togbox', 'sc_tog_box' );

更新:好的,我需要改写一下,因为“checked”属性的存在意味着“checked”没有任何参数。因此,如果他们只是在简码中输入“open”,我需要能够在 html 中添加“checked”,但如果他们不输入 open,则没有 checked 属性。

4

1 回答 1

0

找到了答案:

if($open === 'yes'){
    $open = 'checked';
}
else {
    $open = '';
}
于 2013-09-15T06:59:27.567 回答