ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
Main Menu
Tweet
Facebook
Line
:-?
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
webadm
投稿日時: 2006-9-29 3:44
Webmaster
登録日: 2004-11-7
居住地:
投稿: 3093
RSSフィードに新たなバグが
どうもYahoo RSSリーダーに登録した当サイトのニュースフィードがちっとも更新されなくなったので調べてみた。

確かに最初のdateフィールドの日付が9月18日の15時のまま変わらない。その後に出てくる最新記事の日付はあっている。

なんなんだ。

ソースコードを見るとどちらも同じthe_time関数なるものを使っている。しかし最初のはいつも古い9月18日の記事の投稿時刻を示している。

調べてみるとthe_time関数はWordpress内部で定義されていて暗黙に$GLOBALS['post']を使用している、こりはなんだと更に調べると問題の記事毎の更新日付については$GLOBALS['posts']の内容をforeachでぶんまわして$GLOBALS['post']に代入している。なのでただthe_timeだけ単独で読んでも$GLOBALS['post']の内容が不確定なので結果は不確定。

だめじゃん(;´Д`)

the_time関数内部では実質mysql2date関数でmysqlの日付データを文字列に変換している。似たようなことをしているのが他のソースにもちらほら。見ると最後に投稿された日付が入っている変数を使って更新日付文字列を得ているものもあるのでそれを真似てみた。

今度はちゃんと最新投稿の日付が入るようになった。

そういえば9月18日というと新に作成したパッチメッセージというカテゴリに初めて新規記事を投稿した時と一致する。それ以降も同じカテゴリには記事を書いているのだが、なぜそっちの日付が出てこないかは謎。

改めてPHPは可読性が悪いことを実感。

でもdrecomRSSだと更新日付が9/18日で止まっているように見えるのはそれとは違う理由だろうか。パッチ後負荷が増えてしばらく応答が悪かったのが原因だろうか。ぴよちさんとこも似たような感じで更新が止まっているように見えるけど実際はちゃんと更新されている。謎だ。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   Wordpress module 0.50RC Final導入 webadm 2006-9-28 3:23
   » RSSフィードに新たなバグが webadm 2006-9-29 3:44
     コメント・トラックバックの承認ができなくなった webadm 2006-10-4 16:55
       MySQL ControlPanelでSpamコメント・トラックバック削除した webadm 2006-10-4 17:21

投稿するにはまず登録を
 
ページ変換(Google Translation)
サイト内検索