non title

test pages

// functions.php に追加
add_action('wp_enqueue_scripts', function() {
    // パスは必要に応じて調整(子テーマ使うなら get_stylesheet_directory_uri())

    wp_enqueue_style('my-accordion-style', get_template_directory_uri() . '/accordion.css', [], '1.0');
    wp_enqueue_script('my-accordion-script', get_template_directory_uri() . '/accordion.js', ['jquery'], '1.0', true);
});

global $my_wp_accordion_count;
$my_wp_accordion_count = 0;

// [accordion multiple="true|false"]...[/accordion]
add_shortcode('accordion', function($atts, $content = null) {
    global $my_wp_accordion_count;
    $my_wp_accordion_count++;
    $atts = shortcode_atts([
        'multiple' => 'false', // trueにすると複数開ける
        'class' => ''
    ], $atts, 'accordion');

    $id = 'wp-accordion-' . $my_wp_accordion_count;
    $multiple = ($atts['multiple'] === 'true') ? 'true' : 'false';
    $class = esc_attr($atts['class']);

    $out  = '<div id="'. esc_attr($id) .'" class="wp-accordion '. $class .'" data-accordion-multiple="'. $multiple .'">';
    $out .= do_shortcode($content);
    $out .= '</div>';

    return $out;
});

// [accordion_item title="nontitle"]本文[/accordion_item]
add_shortcode('accordion_item', function($atts, $content = null) {
    static $item_index = 0;
    $item_index++;
    $atts = shortcode_atts([
        'title' => 'タイトル',
        'open'  => 'false' // default closed
    ], $atts, 'accordion_item');

    $title = esc_html($atts['title']);
    $open = ($atts['open'] === 'true') ? true : false;
    $btn_id = 'wp-accordion-btn-' . $item_index;
    $panel_id = 'wp-accordion-panel-' . $item_index;

    $btn_aria_expanded = $open ? 'true' : 'false';
    $panel_style = $open ? 'style="max-height:1000px;"' : '';

    $out  = '<div class="wp-accordion-item">';
    $out .= '<button id="'. $btn_id .'" class="wp-accordion-trigger" aria-expanded="'. $btn_aria_expanded .'" aria-controls="'. $panel_id .'">';
    $out .= '<span class="wp-accordion-title">'. $title .'</span>';
    $out .= '<span class="wp-accordion-icon" aria-hidden="true">+</span>';
    $out .= '</button>';
    $out .= '<div id="'. $panel_id .'" class="wp-accordion-panel" role="region" aria-labelledby="'. $btn_id .'" '. $panel_style .'>';
    $out .= do_shortcode($content);
    $out .= '</div>';
    $out .= '</div>';

    return $out;
});