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

Web講義グループ管理

新規追加
✅ グループ「認知症ケア基礎コース」を作成しました。
 
32件中 1–20件 « / 2 »
ID グループ名 カテゴリ 所属講義数 表示順 ステータス 更新日
GRP-001 認知症ケア基礎コース
📹 認知症ケアの基礎 〜理解と対応〜 📹 認知症の人とのコミュニケーション 📹 認知症ケアの実践技術 他2件
認知症ケア 5 1 公開済み 2026-10-15
GRP-002 感染症対策・衛生管理コース
📹 感染症対策研修 2026年版 📹 手洗い・消毒の基本技術 📹 感染拡大時の初動対応
感染症対策 3 2 公開済み 2026-10-12
GRP-003 介護技術スキルアップコース
📹 介護技術の基本 〜移乗・移動介助〜 📹 食事介助と口腔ケアの実践 📹 排泄介助の基礎知識 他1件
介護技術 4 3 公開済み 2026-10-08
GRP-004 虐待防止・権利擁護研修コース
📹 虐待防止と権利擁護 〜利用者の尊厳を守る〜 📹 身体拘束廃止への取り組み
虐待防止・権利擁護 2 4 下書き 2026-10-05
GRP-005 チームリーダー・管理職育成コース
📹 チームリーダーのためのマネジメント基礎 📹 人材育成と OJT の進め方 📹 職場環境改善と働き方改革
マネジメント 3 5 公開済み 2026-09-28
GRP-006 コミュニケーション・接遇研修コース
📹 コミュニケーション技法 〜傾聴と共感〜 📹 接遇マナーと言葉遣いの基本
コミュニケーション 2 6 非公開 2026-09-20
GRP-007 リスクマネジメント・事故防止コース
(所属講義なし — 講義を紐付けてください)
介護技術 0 7 下書き 2026-09-15
GRP-008 新人研修必須コース(入職時)
📹 福祉・介護職の倫理と理念 📹 個人情報保護と守秘義務 📹 感染症対策研修 2026年版 他3件
(複合) 6 8 公開済み 2026-09-10
ID グループ名 カテゴリ 所属講義数 表示順 ステータス 更新日
32件中 1–20件 « / 2 »

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

1. WP実装方針

カスタム投稿タイプ lecture_group として実装。WP_List_Table を継承した LMS_Lecture_Group_List_Table クラスで一覧画面を構築する。管理メニューは add_submenu_page() で「コンテンツ管理」配下の「Web講義グループ」として登録。メニュースラッグは lms-lecture-groups。カスタムカラム(カテゴリ、所属講義数、表示順)は manage_lecture_group_posts_columns / manage_lecture_group_posts_custom_column フィルタで定義。「所属講義数」は count 型カスタムフィールド lecture_count を参照してソート可能にする(meta_value_num)。行アクション「所属講義を管理」は編集画面(B-CNT-002編集)へ遷移。

2. 権限制御

capabilitymanage_lms_content(B-CNT-001と共通)。事務局(管理者)ロールに付与し、一般の editor / author ロールはアクセス不可。メニュー表示条件: current_user_can('manage_lms_content')。グループの公開/非公開切替は manage_lms_content 権限が必要。グループの削除はゴミ箱移動のみ可能とし、強制削除は管理者ロール限定。グループを削除しても所属講義(web_lecture)は削除しない(紐付けのみ解除)。

3. データ構造

カスタム投稿タイプ lecture_group を使用。主要カスタムフィールド: group_category(カテゴリ・lecture_category タクソノミーと連携)、lecture_ids(所属講義IDの配列・順序付き)、lecture_count(所属講義数キャッシュ)、sort_order(グループ全体の表示順)、description(グループ説明文)。グループと講義は多対多リレーション。講義側(web_lecture)は group_ids フィールドで所属グループIDを参照する。ACF Pro の relationship フィールドタイプで双方向管理を推奨。

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

一括操作(Bulk Actions): 「公開にする」「下書きにする」「ゴミ箱へ移動」。get_bulk_actions() で定義し process_bulk_action() で処理。行アクション(Row Actions): 「編集」→グループ編集画面へ遷移(B-CNT-002編集画面)、「クイック編集」→グループ名・ステータス・表示順のインライン編集、「所属講義を管理」→編集画面の「所属講義」タブへ直接遷移(?tab=lectures パラメータ付き)、「ゴミ箱」→ゴミ箱ステータスへ変更(所属講義の紐付けは保持したまま)。テーブルに表示する所属講義プレビュー(先頭3件+件数表示)は get_posts() で取得し HTML エスケープして出力。

5. Screen Options

表示列の選択: ID / グループ名 / カテゴリ / 所属講義数 / 表示順 / ステータス / 更新日。デフォルトはすべて表示。ページあたり表示件数: デフォルト20件、set-screen-option フィルタで lms_groups_per_page キーとして保存。グループ名列の「所属講義プレビュー」表示は Screen Options で個別にON/OFF制御可能とすることを検討(実装工数と相談)。

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

グループ数は現状32件・将来100件程度と想定するため、ページネーションより全件表示も選択肢だが、仕様統一のため WP_List_Table の標準ページネーションを適用する。所属講義数(lecture_count)は講義の紐付け変更時に update_post_meta() でキャッシュ更新し、一覧表示時の get_posts() 呼び出しを回避する。表示順(sort_order)は整数型でDBインデックスを設定。一括操作・削除は wp_verify_nonce() で Nonce 検証必須。グループ名・説明文の出力時は esc_html() / wp_kses_post() でサニタイズ。所属講義のリレーションデータ保存時は $wpdb->prepare() で SQL インジェクション対策を徹底する。