PROJECT 002 — 社内ポータルサイトをWordPressで作る。
STEP 08 / AUTOMATION
STEP 07では、蓄積した投稿やコメントから必要な情報を探せる検索機能を作りました。情報を保存し、共有し、あとから探せるところまで進むと、次に気になったのは投稿するときの小さな手間です。
同じ種類の投稿を作るたびに、日付を確認し、時間帯を判断し、決まった形式でタイトルを入力する。1回の操作は小さくても、毎回同じ判断を繰り返します。
そこでSTEP 08では、HOMEから投稿を作る操作を見直し、繰り返していた入力と判断をWordPressへ任せました。大きな自動化システムを作るのではなく、まず一つの投稿操作を短くするところから始めます。
投稿のたびに同じタイトルを考えていた
この社内ポータルには、日ごと、時間帯ごとに記録を残すカテゴリーがあります。投稿タイトルには日付と「昼」「夜」を使うため、作成する人がその都度、正しい日付と時間帯を判断する必要がありました。
通常のWordPress投稿画面から作る場合は、投稿を追加し、タイトルを入力し、カテゴリーを選び、公開するという操作になります。しかし、この用途ではタイトルの形式も投稿先もほぼ決まっています。自由に入力できることより、同じ形式で迷わず作れることの方が重要でした。
もう一つの問題は、同じ時間帯の投稿を同じカテゴリーへ重ねて作れることです。タイトルが同じでもWordPressは別の記事として保存できるため、作成済みかどうかを人が確認しなければなりません。
変更前 投稿画面を開く ↓ 日付と時間帯を判断する ↓ タイトルを入力する ↓ カテゴリーを選ぶ ↓ 同じ投稿がないか確認して公開する
HOMEのカテゴリーから直接投稿できるようにする
最初に行ったのは、HOMEに表示している各カテゴリーの見出しへ「投稿」ボタンを置くことでした。利用者は投稿先のカテゴリーを見ながら、その場でボタンを押します。
このボタンには対象カテゴリーの情報を持たせています。押された後はWordPress側が投稿権限と送信内容を確認し、対象カテゴリーに新しい投稿を作ります。利用者が管理画面でカテゴリーを選び直す必要はありません。
ボタンは投稿を公開できる利用者にだけ表示します。操作を減らしても、誰でも投稿できる状態にはしませんでした。
日付と昼夜からタイトルを自動生成する
投稿タイトルは、WordPressに設定された現在時刻から作ります。実装した判定は次の形です。
- 8時10分以上、20時10分未満:当日の日付+「昼」
- 20時10分以上:当日の日付+「夜」
- 0時以上、8時10分未満:前日の日付+「夜」
たとえば、日付が変わった午前1時に夜の記録を作る場合、カレンダー上の当日ではなく前日の日付を使います。深夜帯を前日の夜勤として扱う運用に合わせた判断です。
生成されるタイトルは「2026年9月16日(夜)」のような形式になります。利用者が入力するのはタイトルではなく、投稿先を選ぶ操作だけです。
変更後 対象カテゴリーの「投稿」を押す ↓ WordPressが現在時刻を確認する ↓ 日付と「昼 / 夜」を決める ↓ 同じカテゴリーの重複を確認する ↓ タイトルとカテゴリーを設定して投稿する
処理はテーマの2か所に分けた
画面側の入口は、テーマのfront-page.phpに置きました。ここでカテゴリーごとの投稿ボタンと、作成後の結果メッセージを表示します。
実際の判定と投稿作成はfunctions.phpへまとめました。時刻からタイトルを作る処理、対象カテゴリーの確認、重複確認、WordPressへ投稿を登録する処理を画面表示から分けています。
WordPressには、ログイン済み利用者から送られた処理を受け取るadmin_postという仕組みがあります。今回の投稿ボタンはこの入口を使い、権限と不正な送信でないことを確認してから投稿を作るようにしました。
コードそのものを画面テンプレートへ詰め込まず、表示と処理を分けたことで、時間帯のルールを直すときも判定部分を追いやすくなりました。
同じタイトルの投稿は作らない
タイトルを自動化しても、ボタンを二度押せば同じ投稿を二つ作れてしまいます。そこで、投稿を保存する前に、同じカテゴリーへ同じタイトルがないか確認する処理を加えました。
同名の投稿が見つかった場合は新しい投稿を作らず、HOMEへ戻して「同じカテゴリに同名の投稿があるため、作成できませんでした」と表示します。確認対象には公開済みの記事だけでなく、下書きや予約済みなど、削除されていない投稿も含めました。
重複を自動で削除したり上書きしたりはしません。どちらを残すかを仕組みが勝手に決めると、必要な記録を失う可能性があります。今回は「新しく作らず、利用者へ知らせる」までを自動化しました。
深夜の投稿で日付の考え方を修正した
最初の実装では、昼夜の判定はできても、日付には常に投稿時点のカレンダー日付を使っていました。そのため、日付が変わった後から8時10分までの夜の投稿も、新しい日付になっていました。
実際の運用では、この時間帯は前日から続く「夜」として扱います。そこで翌日、0時から8時10分未満だけタイトルの日付を1日前へ戻すように修正しました。
自動化では、コードが動くことだけでなく、現場で使っている日付の区切りと一致していることが必要です。カレンダー上の1日と、仕事上の1日が同じとは限らないことを、この調整で確認できました。
どこまでを仕組みに任せたか
今回、WordPressへ任せたのは次の部分です。
- 投稿先カテゴリーの引き継ぎ
- 現在時刻から日付と昼夜を決める処理
- 決まった形式のタイトル生成
- 同一カテゴリー内の重複タイトル確認
- 投稿作成後の結果表示
一方で、どのカテゴリーへ記録を作るか、投稿後に何を書くか、内容が正しいかという判断は人に残しました。すべてを自動にするのではなく、形式が決まっている部分だけを仕組みに任せています。
その後、ポータルでは定型情報を持つ専用フォームや、PDFを使った発行処理にも発展しました。ただし、それぞれ権限や確認対象まで含む別の仕組みです。STEP 08では、その出発点になった小さな投稿自動化に範囲を絞ります。
自動投稿の動作を確認する
実装後は、操作と結果を次の順で確認しました。
- 投稿権限のある利用者にだけボタンが表示される
- ボタンを押すと、選んだカテゴリーへ投稿される
- 8時10分と20時10分を境に「昼」「夜」が切り替わる
- 0時から8時10分未満は前日の日付になる
- 同じカテゴリーに同名投稿がある場合は作成されない
- 作成成功、重複、権限不足などの結果がHOMEに表示される
投稿後は自動で作られたタイトル、カテゴリー、投稿者、公開状態を確認しました。重複時には投稿数が増えていないことも確認します。
小さな繰り返しから自動化する
社内ポータルの自動化は、最初から大きな仕組みを作ることではありませんでした。毎回同じ形式で入力しているものを見つけ、その中から機械的に決められる部分をWordPressへ移したのが始まりです。
操作を一つ減らすだけでも、入力形式をそろえられます。一方で、深夜の日付のように、実際の運用を知らなければ正しく決められない条件もあります。まず小さく作り、使った結果からルールを直す進め方が合っていました。
情報を投稿し、探せる場所だったWordPressに、繰り返し作業を助ける処理が加わりました。ポータルが単なる情報置き場から、日々の仕事を支える仕組みへ少しずつ変わっていきます。
次は機能と人を業務フローにつなげる
投稿の入口と定型処理を整えると、次に見えてきたのは、発行した情報を誰が確認し、どの状態まで進めば完了なのかをつなぐ必要性です。
STEP 09では、発行、対象決定、確認、完了を一つの業務フローとして整えます。
← STEP 07「社内ポータルに検索を作る。増えた情報から必要なものを探せるようにする。」
PROJECT 002の記事一覧を見る
NEXT → STEP 09「社内ポータルに業務フローを作る。投稿・確認・完了までをひとつの流れにつなげる。」