【10日目】メタディスクリプションの自動設定
こんにちは、今日で連続投稿10日目になります!100日連続投稿の10分の1達成!!この10日間でかなり成長したような気がします。100日目が楽しみです。100日後には収益化できているといいですね。収益化できるように動きますが笑。今日は1日目の記事で軽く触れていたメタディスクリプションの自動設定について書いていきます。日記みたいな感じなので有益ではありません。
メタディスクリプションの自動設定ができなかった
私はWordPressの自動化に必要なPythonのライブラリについて全く分からないので、基本的にChatGPTに聞いてコードを作成しています。基本的に以下にように投稿データを設定すれば、コードを実行後、記事として反映されます。
# リクエストデータ
data = {
"title": title,
"content": content,
"status": "publish",
"meta": { # メタデータを追加
"description": meta_description
}
}
しかし、このコードをいくら実行しても、メタディスクリプションだけはWordPressに反映されない。生成AIに聞いたところ、Yoast-SEOプラグインを有効化していると反映されないというのです。Yoast-SEOプラグインを有効化しているときは下記のコードで実行すると上手くいくようです。これはGeminiに聞いてもChatGPTに聞いても、検索結果のBingでも同じような回答を示しています。
data = {
"title": title,
"content": content,
"status": "publish",
"meta": {
"_yoast_wpseo_metadesc": meta_description
}
}
しかし、こちらのコードも試してみてもメタディスクリプションだけは設定できない。この課題は解決しないまま1日目の記事投稿から時間だけ経過していました。WordPress REST APIじゃなくて、python-wordpress-xmlrpcライブラリを使うと不具合が少なくなるという記事も見ましたが、xmlrpcライブラリを使ったら上手くいく保証もないしな、、、と思い何もできずに、、、、。しかし、2月から本格的にサイトを動かしていくことを考えると避けて通ることはできません。またメタディスクリプションの設定方法について調べていくことに。
Yoast-SEOはデータの更新をサポートしていない
本題に入ります。公式サイトによると、Yoast-SEOはREST APIを提供していますが、データの取得ができるだけで、データの設定・更新はサポートしていないようです。「え、生成AIが言ってたメタディスクリプション設定は何だったの!?」って思いますよね。昔はできたけど今は出来ないとかそういうことなのかな、、、それとも自分のWordPressの環境設定が原因?
自動でメタディスクリプションを設定する方法
以下のサイトで、Yoast SEOのメタデータをREST APIを使用して変更を加える方法について紹介されていました。
Yoast SEOのメタデータをREST APIを使用して変更を加える
しかも記事が投稿されているのがなんと今年の1月!新しい記事なのでこちらの記事を参考にして不具合が起きるとかはなさそうですね!
この記事を参照してYoast-SEOの値をAPI経由で更新するプラグインを作成しました。メタディスクリプションを設定するためにプラグインを作成するとは思っていもいませんでしたが、意外と簡単に作成できるんですね。
更新はできるけど、、、
先ほどのプラグインを作成したので、Pythonを使って既存記事のメタディスクリプションの設定は自動でできるようになって嬉しかったです。しかし、この機能を自動投稿に反映させるとなると少し手間が掛かります。
新規記事を自動で投稿
↓
投稿した記事から記事IDを取得
↓
取得した記事IDのメタディスクリプションを編集して更新
1回記事を投稿した後にIDを取得して、そこから更新しないといけないのです。手間が掛かりますし、コードの記述量が多くなってしまいます。(既存のコードにこの処理をエラーが出ないように追加するのがめんどくさい…)
できることなら新規投稿の時に一緒にメタディスクリプションも設定したいですよね。ということで、ChatGPTに聞いてみました。
ChatGPTに聞いてみた
結論どうなったかというと、ChatGPTが出力したPHPコードでプラグインを作成したことにより、新規投稿の際に一緒にメタディスクリプションの設定も行えるようになったんですが、不具合がいくつか発生しました。
・アイキャッチ画像が設定できなくなった
・サンプル動画の出力が上手くいかなくなってしまった
・既存の投稿に対してメタ情報の更新ができなくなった
この不具合を修正するぐらいなら、投稿した後に記事ID取得してメタ情報更新するようにした方が早いか….と思い辞めました笑
(この辺の処理もプロンプトに含めれば上手くいったのかもしれませんが、長いコードの出力はエラーが起きやすいからなんとも…)
記事を投稿した後に記事IDを取得してメタ情報を取得する方法に落ち着きました。わざわざ記事を投稿した後に更新するので処理効率は落ちると思いますが、エラーも起きず数分で実装できて良かったなと思います。
最後まで見て頂きありがとうございました。いつも1000字ぐらいで書こうと思っているんですが今日は長くなってしまいました。noteを書く時間を短くして新サイトの構想について考える時間を長くとりたいですね。(ただ、note書くの結構楽しいんですよね…笑)