WP-ADMIN WIREFRAME — B-CNT-001 Web講義管理(一覧)
🏠 LMS学習サイト | サイトを表示
🔔 3
👤
事務局担当者

Web講義管理

新規追加
✅ 講義「感染症対策研修 2026年版」を公開しました。
 
142件中 1–20件 « / 8 »
📷 ID 講義タイトル グループ 講師 時間 ステータス 更新日
🎥
WL-001 認知症ケアの基礎 〜理解と対応の第一歩〜 認知症ケア 佐藤 和子 45分 公開済み 2026-10-15
🎥
WL-002 感染症対策研修 2026年版 感染症対策 田中 健一 60分 公開済み 2026-10-12
🎥
WL-003 虐待防止と権利擁護 〜利用者の尊厳を守る〜 虐待防止・権利擁護 鈴木 美咲 30分 下書き 2026-10-10
🎥
WL-004 介護技術の基本 〜移乗・移動介助〜 介護技術 山田 太郎 50分 公開済み 2026-09-28
🎥
WL-005 チームリーダーのためのマネジメント基礎 マネジメント 高橋 直人 40分 非公開 2026-09-20
🎥
WL-006 コミュニケーション技法 〜傾聴と共感〜 コミュニケーション 伊藤 美紀 35分 公開済み 2026-09-15
🎥
WL-007 食事介助と口腔ケアの実践 介護技術 山田 太郎 25分 下書き 2026-09-10
📷 ID 講義タイトル グループ 講師 時間 ステータス 更新日
142件中 1–20件 « / 8 »

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

1. WP実装方針

カスタム投稿タイプ web_lecture として実装。WP_List_Table を継承した LMS_Web_Lecture_List_Table クラスで一覧画面を構築する。管理メニューは add_menu_page() で「コンテンツ管理」親メニューを作成し、add_submenu_page() で「Web講義」サブメニューを登録。admin_menu フックで登録し、メニュースラッグは lms-web-lectures。カスタムカラム(サムネイル、講師、グループ、時間、ステータス)は manage_web_lecture_posts_columns / manage_web_lecture_posts_custom_column フィルタで定義。ソート可能カラムは manage_edit-web_lecture_sortable_columns で設定。

2. 権限制御

capabilitymanage_lms_content を新規定義。事務局(管理者)ロールに付与する。一般の editor / author ロールにはアクセス不可。メニュー表示条件: current_user_can('manage_lms_content')。CRUD操作はすべて manage_lms_content 権限チェック必須。将来的に「コンテンツ編集者」ロール追加時は、閲覧・編集のみ許可し削除は管理者限定とする権限分離を検討。

3. データ構造

カスタム投稿タイプ web_lecture を使用。主要カスタムフィールド: vimeo_video_id(Vimeo動画ID)、vimeo_video_url(Vimeo URL)、lecture_duration(動画時間・分)、instructor_id(講師投稿ID・リレーション)、subtitle_file(字幕ファイルパス)、material_files(資料ファイル配列)、target_level(対象階層)、target_service(対象サービス種)、sort_order(表示順)。タクソノミー: lecture_category(カテゴリ)、lecture_tag(タグ)、lecture_group(グループ・B-CNT-002と連携)。ACF Pro または Toolset でフィールドグループを管理。

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

一括操作(Bulk Actions): 「公開にする」「下書きにする」「ゴミ箱へ移動」。get_bulk_actions() メソッドでオプション定義、process_bulk_action() で処理実行。行アクション(Row Actions): 「編集」→編集画面へ遷移、「クイック編集」→インライン編集(タイトル・ステータス・カテゴリのみ)、「表示/プレビュー」→フロント表示(公開済み=表示、下書き=プレビュー)、「複製」→講義データを複製して下書き作成(年度更新時に活用)、「ゴミ箱」→ゴミ箱ステータスへ変更。「複製」機能は wp_insert_post() + カスタムフィールドコピーで実装。

5. Screen Options

表示列の選択: サムネイル / ID / 講義タイトル / グループ / 講師 / 時間 / ステータス / 更新日。デフォルトはすべて表示。ページあたり表示件数: デフォルト20件。set-screen-option フィルタで lms_lectures_per_page キーで保存。Screen Optionsパネルの列チェックボックスは get_columns() の定義に連動。

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

現在142件・将来500件以上を想定。WP_Query でページネーション処理(posts_per_page + paged)。カテゴリ・階層・日付のフィルタは tax_query + meta_query + date_query の組み合わせ。カスタムフィールド target_leveltarget_service にはDBインデックスを設定し検索高速化。一括操作・削除は wp_nonce_field() / check_admin_referer() でNonce検証必須。SQL直接操作時は $wpdb->prepare() でSQLインジェクション対策。Vimeo動画IDはサニタイズ処理(数値のみ許可)。ゴミ箱は30日後に自動完全削除(EMPTY_TRASH_DAYS 定数で制御)。サムネイル表示は wp_get_attachment_image_url() でサイズ指定(thumbnail: 48x36)し、遅延読み込み対応。