WordPress: LOTD の仕組み


概要

公開されたリスト投稿から適切なリストランダムに選んで LOTD とし、1日に1回配信する。

詳細

公開されたリスト投稿 とは:

公開されたリスト投稿とは、次の条件をすべて満たす投稿(記事)。

  • 投稿タイプ: list
  • ステータス: 公開

適切なリスト とは:

適切なリストとは、公開されたリスト投稿のなかで次の条件をすべて満たす投稿。

  • これまでにLOTDになった回数が少ない
    • 多様なリストを配信させたいため。
    • システム的には、LOTDとして選ばれた回数を投稿のカスタムフィールド lotd_count に保存し、最小回数のリストから選択する。
  • 運営者が配信向きだと判断した
    • 上記の条件を満たしていても、配信向きでないと判断したリストは配信しないようにする。
    • システム的には、先の lotd_count カスタムフィールドに ‘999’ をセットして候補から除外する。

ランダムに選んで とは:

lotd_count が最も小さい投稿群からランダムに1つリストを選ぶ。ただし、LOTDとして適切かどうかを前日にチェックするため、翌日のLOTD候補を前日に決めておきたい。つまり結果はランダムに生成されるが、それはシードとして与えた日付に対して固定されていることが必要である。

以下、処理の概要。

1. まず既配信回数の最小値を求める。 公開されたリスト投稿の中で書籍から作成されているものを lotd_count カスタムフィールドの小さい順に並べ替えて、その先頭行を取得する。

2. 公開されたリスト投稿から適切なリストをランダムに選ぶ。

LOTD とは……

システム上、LOTD とは次の条件を満たす、公開されたリスト投稿

  • カスタムフィールド lotd_date が YYYYMMDD(YYYYMMDDは今日の日付)

毎日 0:01 にバッチ処理を走らせ、過去日付の lotd_date を削除したうえで、上記のロジックで選んだリストに投稿メタ lotd_dateをセットする。そしてカスタムフィールド lotd_count に保存している配信カウンタをインクリメントしておく。

1日1回配信 するには……

メールでは

毎日 6:05 にバッチ処理を走らせ、LOTD を エックスサーバーのメーリングリストに投稿する。

Feed では

WordPress の標準機能でタグごとの feed が出力されるので、lotdタグのフィードが「今日のリスト」のフィードになる。

X では

メール配信処理の後で @listfreakポストする。