強制的にポストする

件のメール投稿のファイル、wp-mail.phpですが、ケータイメールアドレスを登録していないと、投稿時に「レビュー待ち」になってしまう。これはこれでよい機能なのであるが、自分しか使わない場合には少し都合が悪い。アカウントを作ってMoblogとかに分割するという手もあるのだが、それにしてもレビュー待ちにしておきたくないケースも存在する。

wp-mail.phpは、データベースのユーザー一覧の中から、メールアドレスでユーザーを特定している。メールで投稿した場合、Reply Toに割当たっているメールアドレスと、データベースの中にあるメールアドレスが一致した場合、既存ユーザーということで「公開済み」としている。それ以外はユーザーが見つからなかったということで、「レビュー待ち」という状態をセットしている。多くの場合、ブログシステムに登録しているメールアドレスはケータイメールではない(と思うw)。だから、ケータイメールで投稿すると「こんなユーザー知らんもんね」となってレビュー待ちがセットされる、という仕組みだ。

だから、「知っているメールアドレス」から来た場合は全て統一したユーザーの投稿として扱うというロジックを追加してやればケータイから投稿してもすぐに「公開」となる。本当はメール毎に「公開」「レビュー待ち」「下書き」というステータスを決める事が出来れば良いのだが…。それを始めるとロジックがデカくなるのと、自分では使わないだろうと思うので実装していない。

実際にはwp-mail.phpの90行目あたりに:

$userdata = get_user_by_email($author);
if (!$userdata) {…

という部分がある。この条件分岐がユーザーがデータベースに登録されているかどうかを判断しているので、この辺りに条件を追加してやればよい。例えば、!$userdataだった場合に、その下に$authorが知っているメールアドレスなら、メインのユーザーをセットする、といった具合だ。好みや使い方によって(そしてセキュリティ上の問題もあって)善し悪しなので、具体的なコードはどうするというのは省略する。が、$authorにはメールアドレスが格納されており、get_user_by_email($author)でユーザーデータを拾ってくるのだから、ちょっと知っていれば簡単だろう。

同様にメール本文の最初の行の内容によって、公開ステータスを割り振るなんてこともwp-mail.phpをいじるだけで簡単に出来る。後は自分のブログスタイルによってどうするか、というのだけをはっきりと決めておけばよい。


Tags: , ,



Leave a Reply

*First time to comment? Please comment in English or Japanese to avoid your comment as spam.

retaggr

Powered by WP Hashcash

TrackBack URL : http://www.vjcatkick.com/blog/wp-trackback.php?p=1411