WP-ADMIN WIREFRAME — B-CNT-002 Web講義グループ管理
🏠 LMS学習サイト | サイトを表示
🔔 3
👤
事務局担当者

Web講義グループを編集

新規追加 ← 一覧に戻る
ℹ️ グループを編集しています。所属講義の並び順は「表示順」欄の数値で管理します。変更後は「更新」ボタンをクリックしてください。

📝 基本情報

グループ名*

会員サイトおよび管理画面で表示されるグループ名

グループID

自動採番。変更不可

グループ概要

会員サイトのグループ詳細ページに表示される説明文(300文字以内)

サムネイル画像
🖼️

推奨サイズ: 640×360px(16:9)

表示順

グループ一覧での並び順。数値が小さいほど上位表示(デフォルト: 10)

📚 所属講義の管理

グループに含めるWeb講義を管理します。「表示順」欄の数値で会員サイトでの表示順を制御します(小さい数値が先)。

+ 講義を追加

感染症対策の基本と標準予防策
WL-045 / 公開 / 45分 / 田中 健一
感染症発生時の対応フロー
WL-046 / 公開 / 30分 / 田中 健一
新型感染症への備えと施設内対策
WL-051 / 下書き / 50分 / 田中 健一

既に別グループに所属している講義も追加可。重複所属を許可

📤 公開

ステータス: 公開済み
公開状態: 公開
公開日: 2026-04-01 00:00
最終更新: 2026-06-15 11:20

📁 カテゴリ

🎯 対象属性

対象階層
サービス種

📊 グループ統計

所属講義数 5講義
総動画時間 約210分
グループ受講者数 342人
全講義完了者数 187人
研修計画での利用数 12計画

統計は読み取り専用。詳細はB-HST-001(受講履歴確認)を参照

📋 実装注記(開発者向け)

1. WP実装方針

カスタム投稿タイプ lecture_group の編集画面。register_post_type()'supports' => ['title'] のみ指定し、残フィールドはカスタムメタボックスで構成。メタボックス「基本情報」を 'normal'、「所属講義の管理」を 'normal'、カテゴリ・対象属性・グループ統計を 'side' に配置。所属講義の紐付けはピボットテーブル lms_group_lectures で管理(MtoM)。表示順は sort_order カラムで制御。講義追加の検索は REST API /wp-json/lms/v1/lectures?search= を利用(実装時)。ドラッグ&ドロップ並べ替えはワイヤー上では表示順入力欄で代替表現。

2. 権限制御

グループ編集画面アクセス: manage_lms_content 権限を持つユーザー(事務局)のみ。current_user_can('manage_lms_content') で保護。グループ削除(ゴミ箱移動)は manage_lms_content 必須、完全削除は管理者(manage_options)のみ。グループ統計メタボックスは読み取り専用で表示。一般会員・法人管理者・事業所管理者は WP管理画面にアクセス不可。

3. データ構造

グループ本体: wp_posts(post_type = lecture_group)。グループメタ: wp_postmeta_lms_group_description_lms_group_thumbnail_lms_sort_order_lms_target_level_lms_target_service を保存。所属講義の紐付けはカスタムテーブル lms_group_lectures(カラム: idgroup_idlecture_idsort_ordercreated_at)で管理。グループと講義は多対多のリレーション(1つの講義が複数グループに所属可)。グループ統計は lms_lecture_stats の集計値をキャッシュ(TTL: 1時間)。

4. 一括操作・行アクション

本編集画面では一括操作不要(一覧画面で定義)。「← 一覧に戻る」リンクでグループ一覧へ遷移。所属講義の「削除」ボタンはグループ内からの除籍のみ(講義データ本体は削除しない)。講義追加は検索フォームから候補を選んで「追加」ボタン。表示順は数値入力欄で変更後「更新」ボタンで一括保存。ゴミ箱移動後はグループ統計の研修計画利用数を参照し、利用中の場合は確認ダイアログを表示(実装時)。

5. Screen Options

WP標準の Screen Options パネルで各メタボックスの表示/非表示を制御。add_meta_box() 登録時のコンテキスト('normal'/'side')に応じて自動でパネルに列挙される。折りたたみ状態はユーザーメタ closedpostboxes_lecture_group に保存。グループ統計メタボックスはデフォルト表示、折りたたみのみ許可(削除不可の設定を推奨)。メタボックスのドラッグ&ドロップ並べ替えはWP標準の postbox.js が担う。

6. パフォーマンス・セキュリティ

全フォーム送信時に wp_nonce_field('lms_save_lecture_group', 'lms_lecture_group_nonce') でNonce検証。保存ハンドラ内で wp_verify_nonce() を必ず実行し、失敗時は wp_die()。テキストフィールドは sanitize_text_field()、概要テキストエリアは sanitize_textarea_field() でサニタイズ。所属講義IDは absint() で数値のみ許可し、存在確認クエリを挟む。lms_group_lectures の更新は $wpdb->prepare() を使用してSQLインジェクション対策。表示順の一括更新はトランザクション($wpdb->query('START TRANSACTION'))でアトミックに処理。グループ統計の集計クエリは get_transient('lms_group_stats_{id}') でキャッシュ(TTL: 3600秒)、更新時に delete_transient()。大量講義を含むグループの一覧取得は LIMIT/OFFSET でページネーション対応。