ブログの XML-RPC サポート

個人的メモとして、各ブログの XML-RPC サポート状況をまとめてみた。

Movable TypeBlogger の API と、米 UserLand Software 社の MetaWeblog API に準拠しているようだ。また、WordPressMovable Type に準ずるかたちになっている

面白いのは Blogger。 現在は XML-RPC ではなく、 Google Data APIs (GData) による Blogger Data API を使用している。

Web ページのサイドバーには他にも "Calendar Data API""Spreadsheets Data API" など、Google の他サービスの名前が並んでいるので、GData はこれらのサービスでも実装されているのだろう。GData によるサービス同士の連携もあるのかもしれない。

熊の記念撮影

職場の机にリラックマが乗りこんできました。

Apache XML-RPC のファイル名

Apache XML-RPC で 配布されている .jar は依存ライブラリを除くと 3 つあるのですが、

  • xmlrpc-client-3.0.jar
  • xmlrpc-common-3.0.jar
  • xmlrpc-server-3.0.jar

ファイル名を Mac の Finder からエディタにコピペして気づいた。

xmlrpc-client-3.0.jar
xmlrpc-common-3.0.jar
xmlrpc-server-3.0.jar

すべて文字数が一緒なんです。

サイドバーの Archives で日付表記を変更する

WordPress のサイドバーに表示されている「Archives」だが、日付の表記が「November 2006」のようになっている。私の推測では November が何月なのか、すぐにわかる人はすくないはずだ。できれば、ここはなんとかしたい。

管理画面の「Options」にあった「Date and Time」の設定を変更してみた。しかし、どこにも反映されている気配がないので(わざわざ PHP のドキュメントを読んだっていうのに...)、ソースコードを調べることにする。

テンプレートを眺めてみると、wp_get_archives という PHP の関数を呼び出している。で、こいつは引数の解析だけやって、実際の処理は get_archives 関数が行う。

ファイルは wp-includes/template-functions-general.php の 300 行目あたり。


function get_archives($type='', $limit='', $format='html', $before = '', $after = '', $show_post_count = false) {
  ...
  if ( 'monthly' == $type ) {
    ...
        if ( $show_post_count ) {
          $text = sprintf('%s %d', $month[zeroise($arcresult->month,2)], $arcresult->year);
          $after = ' ('.$arcresult->posts.')' . $afterafter;
        } else {
          $text = sprintf('%s %d', $month[zeroise($arcresult->month,2)], $arcresult->year);
        }
        echo get_archives_link($url, $text, $format, $before, $after);
      }
    }
  } elseif ( 'daily' == $type ) {
  ...

どうやら月別表示のフォーマットは sprintf で決め打ちらしいので、アドホックなコードにはアドホックな修正で対応する。PHP でプログラミングをしたことはないが、まあ適当に書いたら動くだろう、という魂胆。


function get_archives($type='', $limit='', $format='html', $before = '', $after = '', $show_post_count = false) {
  ...
  if ( 'monthly' == $type ) {
      $url = get_month_link($arcresult->year, $arcresult->month);
      $text = sprintf('%04d/%02d', $arcresult->year, $arcresult->month);
      if ( $show_post_count ) {
        $after = ' ('.$arcresult->posts.')' . $afterafter;
      }

これで「November 2006」が「2006/11」と表示されるようになった。

"Hello, world!\n"

大学生のころに、ボンダイブルーの IMac を買って 7 年あまり。 ついに自宅サーバに手を出してしまった。とりあえず、 WordPress でブログを開設してみる。

  1. 1
  2. 2
  3. ...
  4. 34
  5. 35
  6. 36
  7. 37
  8. 38
(190 記事)

Want fries with that?

Open Source Projects