| 📷 | 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 | 講義タイトル | グループ | 講師 | 時間 | ステータス | 更新日 |
カスタム投稿タイプ 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 で設定。
capability は manage_lms_content を新規定義。事務局(管理者)ロールに付与する。一般の editor / author ロールにはアクセス不可。メニュー表示条件: current_user_can('manage_lms_content')。CRUD操作はすべて manage_lms_content 権限チェック必須。将来的に「コンテンツ編集者」ロール追加時は、閲覧・編集のみ許可し削除は管理者限定とする権限分離を検討。
カスタム投稿タイプ 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 でフィールドグループを管理。
一括操作(Bulk Actions): 「公開にする」「下書きにする」「ゴミ箱へ移動」。get_bulk_actions() メソッドでオプション定義、process_bulk_action() で処理実行。行アクション(Row Actions): 「編集」→編集画面へ遷移、「クイック編集」→インライン編集(タイトル・ステータス・カテゴリのみ)、「表示/プレビュー」→フロント表示(公開済み=表示、下書き=プレビュー)、「複製」→講義データを複製して下書き作成(年度更新時に活用)、「ゴミ箱」→ゴミ箱ステータスへ変更。「複製」機能は wp_insert_post() + カスタムフィールドコピーで実装。
表示列の選択: サムネイル / ID / 講義タイトル / グループ / 講師 / 時間 / ステータス / 更新日。デフォルトはすべて表示。ページあたり表示件数: デフォルト20件。set-screen-option フィルタで lms_lectures_per_page キーで保存。Screen Optionsパネルの列チェックボックスは get_columns() の定義に連動。
現在142件・将来500件以上を想定。WP_Query でページネーション処理(posts_per_page + paged)。カテゴリ・階層・日付のフィルタは tax_query + meta_query + date_query の組み合わせ。カスタムフィールド target_level、target_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)し、遅延読み込み対応。