2019年9月21日(土) 10:13 JST

テストサイトの RSS フィードの出力が変

  • 投稿者:
  • 表示回数 3,481
Geeklog ファイル名を index.xml にすると時々ファイルサイズが 0 になる現象が起きる。さらにヘッダ中に RSS auto-discovery 用のフィールドが出力されない。

エラーメッセージを手がかりに GREP してみると,lib-common.php の3443行目で RSSフィードを読みに行って失敗したときのメッセージ。読みに行くときに UA に Geeklog/1.4.0sr2 をセットしていくのだが,これが Bad Behavior にはねられているのかも。(追記:この考えははずれだった)

ヘッダ中に出力されないのは,RSSフィードの編集で「この話題のタイトルをリンクする」という項目で「全て」を選択していないため。英語では Header-link in topic なので,「次の話題へのリンクをヘッダに含める」くらいか。全てを選択すれば,常に RSS auto-discovery のフィールドを含めるし,特定の話題を選択すれば,その話題が表示されるときだけ RSS auto-discovery のフィールドを含めるということだろう。普通は「全て」で問題ないはず。うっかり「なし」を選ぶと,全く RSS auto-discovery のフィールドが出力されないということになる。(この考えで正解。ヘッダどころか,フィードファイル自体が生成されない)

parser.factory.class の _findFeed も問題がありそう。PHP の XML パーサがバージョンにより,入出力のデフォルト値・オーバーライドのしかたがまちまち。特に PHP 4 で内部エンコーディングが EUC-JP だと失敗しそう。そのうち,xml_parser_create, xml_parser_set_option の項目を熟読してみよう。

よく見ると,Atom 1.0 の時刻フィールドも変。