前の記事「articles.dbで記事を管理する。ブログを感覚ではなく台帳で見る」で、記事をDBで管理できるようになった。
次に見えてきたのは、投稿作業だった。
WordPressを開いて、本文を貼って、タイトルを入れて、下書き保存する。
毎回これをやっていた。
面倒だった。
でも、公開までAIに任せるのは怖かった。
だから post_draft.py を作った。
AIに公開させるためではない。
WordPressに下書き保存するところまでを仕組みにするためだ。
WordPressに直接投稿するのが怖かった
間違ったタイトルで公開されるかもしれない。
カテゴリが違うかもしれない。
SEO情報がまだ確認できていないかもしれない。
内部リンクをまだ確認していないかもしれない。
公開は読者に見える。
下書きなら間違えても直せる。
だから、下書き保存だけを自動化することにした。
post_draft.py は下書き搬入担当
post_draft.py は、公開する道具ではない。
WordPressに下書きを置く道具だ。
AIブログ会社の言葉で言い直すと、post_draft.py は「投稿担当」ではなく「下書き搬入担当」だ。
記事をWordPressの搬入口まで運ぶ仕事。
公開するかどうかの判断は、俺が開いたあとに始まる。
下書き搬入担当。それで十分だった。
ひとつ目のブログでは動いた。でも別のブログでは止まった
ひとつ目のブログで、post_draft.py は止まらなかった。
だから仕組みは完成したと思っていた。
別のブログで同じ仕組みを動かしたとき、止まった。
同じコード、同じ手順で試した。
それでも止まった。
ブログが違えば、カテゴリも違う。
タグの設定も違う。
SEO情報の持ち方も違う。
俺の中では、最初のブログをzumin、次のブログをblog-sekkeiと呼んでいる。
同じ post_draft.py を動かした。
でも止まった。
これが、「一つのブログで動いた=仕組みが完成した」ではないことを教えてくれた。
クライアントが変わっても止まらない。
そこで初めて、仕組みになる。
一つで動いた。でもそれだけでは仕組みではなかった。
止まった原因は、記事ではなく入力待ちだった
最初、何が原因かわからなかった。
SEO情報が悪いのか。
カテゴリが悪いのか。
post_draft.py 自体が悪いのか。
だからログをそのままChatGPTに貼った。
「これ、何が起きたのですか?」と聞いた。
そこから、原因が分かれていった。
SEO情報の自動登録は動いていた。
止まっていたのは、カテゴリとタグの入力待ちだった。
質問をうまく作ったわけじゃない。
起きたことを貼っただけだ。
原因がわかって、問題がはっきりした。
自動化したつもりでも、途中で人間の入力を待つなら仕組みではない。
下書き保存を最優先にした
原因がわかったあと、post_draft.py の目的を整理した。
目的は、完璧な投稿データを作ることではない。
WordPressに下書き保存することだ。
SEOタイトルがなくても、本文とタイトルがあれば下書きにできる。
カテゴリが未登録でも、あとで直せる。
タグが足りなくても、あとで足せる。
Yoast SEO、要するにWordPressのSEO管理ツールへの反映に失敗しても、本文の下書きが残っていれば確認できる。
だから、下書き保存を最優先にした。
止まる前に、保存する。
保存が先。確認はあとでいい。
SEO情報の欠如では止めない
SEO情報は大事だ。
タイトルタグ、メタディスクリプション、フォーカスキーワード。
でも、SEO情報がないからといって下書き保存を止める必要はない。
あとから確認できるからだ。
SEO情報が足りないたびに処理が止まると、投稿工程が進まない。
だから、SEO情報の欠如では止めない。
SEO情報がなくても、下書きは保存できる。
止まってよい理由を3つだけにした
では、何があれば止まってよいのか。
整理したら、3つになった。
1. WP API通信エラー:WordPressに繋がらなければ、下書きに保存できない
2. ファイル未存在:投稿する本文がなければ、下書きに入れるものがない
3. CLIENT_NAME未設定:要するに「どのブログに入れるか」の設定値がなければ、動かしようがない
この3つは、本当に止まってよい。
逆に、止めないものはこうなった。
- SEO情報の欠如
- カテゴリ未登録
- タグ未登録
- Yoast SEO反映失敗
- メタ情報の不足
これらは下書き保存後に確認できる。
だから止めない。
止まる理由を3つにした。それ以外では止めない。
AIには公開させない
公開ボタンだけは、人間が押す。
post_draft.py は、その境界線だ。
WordPressの下書きに記事を置く。
そこで止まる。
公開するかどうかを決めるのは俺だ。
仕組み化とは、止まる理由を決めることだった
自動化というと、何でも自動で進むことだと思っていた。
でも実際には、何でも進めればいいわけではない。
止まってよい場所を決める。
止まってはいけない場所を決める。
人間が見る場所を残す。
post_draft.py でやったのは、投稿の自動化ではなかった。
投稿工程の設計だった。
AIには公開させない。
下書き保存で止める。
SEO情報では止めない。
本当に止まってよい理由だけを残す。
この線引きができて、ようやく安心して使える仕組みになった。


コメント