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 属性がありません。