我有一个 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 属性。