KtaiEntry+Subscribe2での投稿日時について
-
KtaiEntry, KtaiStyleを利用させていただいております。
大変、有益なプラグインの提供に感謝します。現在、WP(MU)+KtaiEntry+Subscribe2の組み合わせで、
メールでの投稿を受け付けて、ダイジェスト配信する仕組みを
構築しています。通常、Webサイトを公開して、それなりにアクセス
があれば、wp-cronがそれなりに動作して、メール投稿の取り込み
や、定期的な配信が実行されると思いますが、Webのアクセスが
あまりない場合に、期待どおりに機能しないことがあります。
そして、いろいろ試していくうちに、一つの問題点に行き着きました。例えば、次のように設定します。
・毎時00分にOSのcronでトップページをwget
#wp-cron.phpが動作することを期待する。
・毎時10,20,30,40,50分にOSのcronでretrieve.phpをwget
#00分にメール取り込みとメール配信が重ならないように。
#wp-cronのタイミングでretrieveも動作するとは思うのですが…この状態で、55分にメール投稿があったとします。
しかし、retrieveは次回の10分まで実行されません。
そして、subscribeの配信が00分に実行されると、
その時点では、メール投稿がWPに取り込まれていないので、配信の
対象から外れます。しかも、55分のメール投稿が10分に記事として
取り込まれても、投稿日時が55分になっているので、subscribeは
配信済みと思って、次回の00分の配信対象にもなりません。この状況を考えると、retrieveではなくて、メール受信と同時に
記事として取り込むinjectを使うべき、とも思うのですが、設定の
方法がメールサーバに依存しますし、あまり無いとは思いますが、
連続で投稿がある場合などは、retrieveのほうがスムーズに
取り込み処理をしてくれるのでは、とも思います。で、長々と書いてしまいましたが、ご検討いただきたいのは、
投稿日時(post_date, post_date_gmt)をメール送信のタイムスタンプ
ではなくて、retrieveを実行する際の、post.phpにおけるinsert
のタイムスタンプに設定する機能です。試しに手元の環境で、post.php(328行目あたり)を次のように修正してテストしました。
//$post_date_gmt = gmdate(‘Y-m-d H:i:s’, $post_time_gmt);
//$post_date = gmdate(‘Y-m-d H:i:s’, $post_time);
$post_date_gmt = gmdate(‘Y-m-d H:i:s’);
$post_date = date(‘Y-m-d H:i:s’);
とりあえず、期待する動作になっています。ただし、WPのルールとか仕様等によって、上記の対処がイレギュラーなもの
である場合は、無視をしていただいて結構です。
ご検討、よろしくお願いします。
- トピック「KtaiEntry+Subscribe2での投稿日時について」には新たに返信することはできません。