コンピュータ」カテゴリーアーカイブ

読書メーター

読書メーター – あなたの読書量をグラフで管理

最近読んだ本を登録して、一言コメントを添えられるサービス。
自分が読んだ本と同じ本を読んだ人(読友)をリストアップしたり、読了冊数・ページ数でランキング表示したりできる。

早速、登録してここ1ヶ月間で読んだ本を登録してみた。(をかもとさんの読書メーター
気軽に登録できるのが良いですね。
とりあえず、ブログにエントリを書く前の備忘録的に使ってみようか。

WordPress 2.5.x のショートコードAPI

WordPress 2.5 以降でサポートされた ショートコードAPI が便利すぎて仕方ない。
VideoPop+ を改修したときに調べたのだが、かなり使い勝手が良い。
要は投稿記事中に書いた [my-shortcode foo="bar"]content[/my-shortcode] みたいな文字列を、好きなように置換して表示することができる仕掛けだ。

投稿記事中にソースを書く際、手動で実体参照に変換することがあるのだが、これを自動でやるためのショートコードを作成したのでメモ。
続きを読む

WordPress のエディタに埋め込むメディア用タグを自動編集する

エントリ中で画像を追加したい場合、プラグイン等は使用せずに WordPress 標準の画像管理機能を使用している。
その際、<a> タグに rel="lightbox" を追加するために 2.3.x 系以前では JavaScript を修正していた。
2.5.x からフィルタ image_send_to_editor が使用できるようになったので、それをフックして自動で <a> タグに rel="lightbox" を追加するようにしてみた。
プラグインにするほどの機能ではなかったので、テーマの functions.php にフィルタ用関数を追加。
もっと、高機能にしてプラグイン化しても良いかも。
続きを読む

WordPress 2.5.1 へのアップデート

2.5系で初のセキュリティフィックスが出た記念に WordPress 2.5.1 にアップデートしました。

幾つかのプラグインはアップデートが必要になったが、概ね問題なし。
Popularity Contest だけが、正常に動作しなかった。
とりあえず、作者サイトのリンクから辿った SVN Repository に置いてあった 1.3b4 にバージョンアップしたら動作した。
正式な配布開始までは、これでしのごう。

他のプラグインは、Geo Mashup 以外は 2.5 対応のモノがあったので、バージョンアップ。
幾つかのプラグインのアップデートには自動アップデート機能を使ってみたが、楽チンだ。

どこでもはてブ for WordPress

masuidriveさんが作成されたJavaScript hatana_bookmark_anywhere.js を WordPress に導入し、記事の末尾にはてなブックマークのコメントを表示するためのプラグイン Hatana bookmark anywhere をリリースしました。
# こころよく配布許可をしてくださった masudrive さん、ありがとうございます。

一応、WordPress 2.3.3 と 2.5 で動作確認していますが、なにかあればご連絡ください。

VideoPop Plus Ver.0.6.0 リリース

投稿画面でのビデオファイル選択時の UI を変更した Ver. 0.6.0 をリリースしました。
Ver.0.5.x からの変更点は以下の通り。

  • 投稿画面、ビデオ管理画面でのビデオファイル選択時の UI を変更
  • flv 形式のビデオファイルの場合、サムネイル画像を登録できるように変更

続きを読む

WordPress での日本語スラッグについて

WordPress でパーマリンク構造に %postname% を含めた場合、%postname% が投稿スラッグで置き換えられる。
投稿スラッグを指定しないと、日本語タイトルを urlencode したものが %postname% として使用される。
 例: https://dogmap.jp/2008/03/25/%e6%b7%b1%e6%b3%a5%e4%b8%98%e5%a5%87%e8%ab%87/

%e6などのように特定の文字を "%" と 16 進数字 2 つを用いて変換する処理の事をパーセントエンコーディングと言い、URI の一般的構文を定めた RFC3986 にも記されている
以下、RFC3986 邦訳の抜粋。

パーセントエンコーディング{percent-encoding} メカニズムは、オクテットの対応する文字が認められた文字の範囲外にある、あるいは構成要素の中で区切り氏として使用されている場合に使用される。パーセントエンコードされたオクテットは、パーセント文字 "%" と、そのオクテットの数値を表している二桁の 16 進数字から成る三重語としてエンコードされる。例えば、"%20" は 2 進オクテット "00100000" (ABNF: %x20) についてのパーセントエンコーディングであり、US-ASCII のスペース文字 (SP) に対応している。 Section 2.4 は、パーセントエンコーディングとデコーディングが適応される時について記述している。
pct-encoded = "%" HEXDIG HEXDIG
大文字の 16 進数字 'A' から 'F' は、小文字の 'a' から 'f' とそれぞれ等価である。二つの URI のパーセントエンコードされたオクテット内で使用される 16 進数字の大文字・小文字のみが異なる場合、それらは等価である。整合性を持たせるため、URI の生成を行うもの{producers} や正規化を行うもの{normalizers} は全てのパーセントエンコーディングについて大文字の 16 進数字を使用すべきである。

このパーセントエンコーディングされた URI だが、WordPress ではすべて英小文字になっている。
続きを読む

WordPress 2.5

昨日の話だが、WordPress 2.5 の日本語版がリリースされた。
とりあえず、こっそり運営しているもう一つのサイトだけバージョンアップして様子見。

使用しているプラグインの中では Popularity Contest だけが正常に動作しなかった。
ただし、作者も把握しているようなので、直に修正版が出るだろう。

私が作成して WordPress Plugins/JSeries で公開しているプラグインについては、VideoPop+ 以外は、確認取れました。
WordPress2.5 からは、ビデオや音声ファイルといった画像ファイル以外のメディアも管理する機能が WordPress 本体についているようなので、VideoPop+ の動画ファイル管理機能を省いてポップアップ表示機能だけにするかも。
でも、それだけだったら WP-lightpop でフォローできるなぁ。
とりあえず、Videopop+ の今後の方向性は要検討ですね。

WordPress 2.3.3 でフィードの日付がおかしい

コアソースを改変すると、WordPress のアップデートが面倒になります。
以下にコアソースを修正しないでもフィードテンプレートを変更する方法をエントリしてありますので、そちらを参照してください。 (追記: 2009年11月10日)

各種フィード用テンプレートの変更 : dogmap.jp

犬小屋にて – Feed 配信がどうもおかしい。」を読んで気づいたのだが、WordPress 2.3.3 で配信されているフィードの日付がおかしい。
で、ソースを見てみたところ mysql2date() に渡している第1引数がおかしい。
これは、PHP の date() 関数に渡す日付文字列の書式を与えなければならないのだが、Wordpress のソース上では 'D, d M Y H:i:s +0000' となってしまっている。
GMT との時差をセットしたいのであれば 'D, d M Y H:i:s O' (最後はアルファベット大文字のO) にしなければならない。

修正が必要なファイルは wp-includes/feed-rss.php, wp-includes/feed-rss2.php, wp-includes/feed-rss2-comments.php の3ファイル。
修正箇所は、以下の4箇所。
#他にもあるかもですが (^^;;

feed-rss.php(13):	<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s O', get_lastpostmodified(), false); ?></lastBuildDate>
feed-rss2.php(20):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_lastpostmodified(), false); ?></pubDate>
feed-rss2.php(29):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_post_time('Y-m-d H:i:s', false), false); ?></pubDate>
feed-rss2-comments.php(42):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_comment_time('Y-m-d H:i:s', false), false); ?></pubDate>