0

CSS アコーディオンのショートコードがあります。属性の 1 つは、チェックボックスの「チェック済み」値の $open です。現在、open=checked と入力すると、checked="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 に答える