WordPress 2.5 アップグレードと Gallery

WordPress 2.5 がついにリリースされました。

2.2/3 は経過感がありましたが、2.5 は 2 系の集大成といった感じで、うまくパッケージされたというのが第一印象です。 実装仕掛中的機能がブラッシュアップされ、また面白そうな機能も追加されています。

WordPress | 日本語 » WordPress 2.5

6ヶ月間のコミュニティによる努力が、WordPress 2.5 というすばらしい成果になりました。バージョン 2.5 の数えきれないほどある改善点は、ほぼすべてが皆さんのフィードバックによるものです。例えば、複数ファイルアップロード、プラグインの簡単アップグレード、ビルトインギャラリー、カスタマイズ可能なダッシュボード、パスワードの salt 使用および Cookie の暗号化、メディアライブラリー、コードに干渉しないリッチテキストエディター、同時編集保護、フルスクリーンの投稿画面、投稿記事およびページ検索機能などです。

まず目をひくのが管理画面のデザイン変更です。

wp2.5-01

2.3 までの管理画面はシステム的で無機質なものでしたが、今回は角丸などをつかい温かみのある感じにリニューアルされています。 また、メニューも整理され分かりやすくなったと思います。

うわさのカラースキームは、上記、ユーザ->あなたのプロフィールからクラシックにも変更できます。

 wp2.5-02

初めての人に、WordPress をすすめるときにはやや使い方の説明が大変でしたが、今回のユーザインターフェース変更でかなりよくなったような気がします。 🙂

新機能のチケットについては、おでさんがひろってくださっています。

WP 2.5の新機能 – チケット拾い読み « Odysseygate.com

というわけで、WordPress 2.5の新機能をチケットから拾い上げて見ます。細かい改善とか意味不明なものとかもいっぱいあるので、わりと興味のあるところ中心で(笑)。間違い等あったら教えてください!

ぼくがいいなと思ったのは、エントリにつけたメディアファイルを WordPress からうまいこと管理できるようになったことです。 実は構造的には前からできていたのですが、ユーザインターフェースが改善され、また API も使いやすいものになっています。

wp2.5-03 

コアチームにからユーザに対して画像ギャラリー実装が提供されています。

Using the gallery shortcode « WordPress Codex

In WordPress 2.5, the Gallery feature allows the option to add an image gallery to a Post or Page on your WordPress blog.

The 【gallery】 shortcode is used in a Post or Page to display a thumbnail gallery of images attached to that post. It can be used in its simplest form like this:

これはぼくも昔からやってみたかったことなので、早速 .another にもつけてみました。 メディアとエントリの対応がとれているという部分にいろいろな可能性を感じます。 🙂

hiromasa.another :o) » Gallery

画像リンクからその画像が使われている記事に飛びます。 :-)

[tegaki]面白い![/tegaki]

よければご覧ください~。

tegaki もショートコードだなと、ふとおもった。。。

WordPress 2.5 のタグ重複について追う

(2008/03/30 追記あり)

RC 3 までいっている WordPress 2.5 ですが、現在のところをタグ管理について不可解な動作があるようです。 ぼくも気になったのでちょっと調べてみました。

わーどぷれすっ! » WP 2.5 のタグ付け機能のバグ

2.3 からひきづってる(と思われる)カスタムなタグスラッグを設定しているときのタグの重複問題が 2.5 RC1 でも解決してないことに今頃気づいた。

WordPress は仕様書なんてないので、どの動作が正しい動きなのかわからないところもあるのですが、tai さんご指摘のようにユーザーインターフェースと見た目の動きは、おそらく間違いなく開発元も不具合と認識するような動作です。

ポイントとなるのは (wp)_terms というテーブル。 なんとか DB 設計書から仕様を読みほどいてみます。

Database Description/2.3 « WordPress Codex

Table: wp_terms

wp_terms は以下のような形をしています。

Field Type Null Key Default Extra
term_id bigint(20)   PRI   auto_increment
name varchar(55)        
slug varchar(200)   UNI IND    
term_group bigint(10)     0  

name カラムにタグ名、slug カラムにスラッグ値がはります。

term_id はプライマリキーで、id 番号がはいります。 じゃーこの番号が、何をキーにして増えていくかというと、 slug が UNI (ユニーク) なので slug になっています。

ってことは、

  • name (タグ名) は重複を許す。
  • slug は一意である。

という仕様に見えます。

ここで、いまの不具合に目を向けると、

  • 1. 新規タグ A (name) を作成する
  • 2. A の slug を変更する
  • 3. 再びタグを add するときに A を指定する

こうすると、A タグが 2 つできてしまうという現象です。 実はデータベースの構造だけをみるとこれは、

[tegaki]仕様どおり。。[/tegaki]

要は slug がキーになっているので、違う slug は別タグ(term_id) 扱いです。

ユーザインターフェースがおかしいのはおいておいて、仕様だとするとなにをしたいのかよくわからないですが、たとえば

plugin と addin というタグを extention という slug にまとめることが可能。

という動きともとれます。

もしこの DB 仕様のまま何かをなおすとすれば、ユーザインターフェース側を、

タグ add 時点に重複する name をみつけた場合は、どの slug ふるのかを決めさせる。

と変更することになると思います。

まぁたぶんこれはなくって、単純にデータベースの設計がおかしいのだとは思いますが。。(笑)

てなわけで、tai さんがチケットきってくれたので、こちらで真相がわかるに違いありません。 また、yuriko さんが折衷案のパッチをなげてくださっています。

Yuriko.Net: WordPress で日本語タグ重複問題解決パッチ案

とりあえず、taxonomy が post_tag の場合はタグ名でも比較チェックを行うパッチを考えてみました。手元のテストでは重複問題には対処できましたが、副作用がどれだけあるかは不明です……。

#6313 (When you have a custom tag slug, it will duplicate tags) – WordPress Trac – Trac

When you have a custom tag slug that is different from the tag name, you will have duplicate tags after saving a post with the tag.

さぁ、真相はいかに。 🙂

追記。 ぼのさんより指摘あり! 🙂 いろいろ話していて、

  • wp_terms の name はテーブルとしてはユニークにならない。 カテゴリ名その他とかもはいるから。
  • なのでこのテーブルとしては slug ユニークでよい。
  • でも、それだと wp_taxsonomy の存在意義がなぞ。

うーん、そういうことかー。 wp_taxsonomy もみないといけないということなのだろうか、、どうしたらいいのか良くわからなくなってきてしまいました。。 2時間くらい考えることが必要そう。(笑

ぼのさん、まかした。 🙂

メモリと描画支援とFirefoxと

ThinkPad くんを購入してちょこちょこいじっているわけですが、購入初期状態の 1G メモリーではさすがにたりない! Apache と MySQL と Eclipse と Firefox あげよーもんなら、物理メモリ超えてしまいます。 これじゃーせっかくのデュアル CPU がもったいないーというわけで購入。 メモリといえばここだ!

上海問屋 – 本店 – ホーム

SO-DIMM 1GB 1,899円

1G 1,899円ってあんた。(笑) こちらは小さな部品はメール便で送ってくれるので、受け取りも楽チン。

もともと 1G ささっているので、1G 追加でデュアルチャンネルになるはずです。

memory

てなわけでいい感じになりました。 速くていいっすねー。 Firefox なんか一瞬であがります。 🙂

さすがにチップセット内蔵グラフィックなので、そのへんの値はでないようですね。 ただデュアルチャンネルにしたせいかここの数値もアップしました。 内蔵は VRAM がメインメモリにとられるせいだと思われます。

この数値をみて思い出したのが、最近のグラフィック描画のハードウェア支援です。

Windows Vista は AERO 機能をオンにすると、グラフィックカードの描画支援をつかってすべてを描くようになるのは有名です。

また、実は Mac のミドルもこの機能を持っていて、

Quartz – Wikipedia

Quartz (クオーツ) は、アップルオペレーティングシステムMac OS X の描画コアエンジン。前身である NeXT の DPS (Display PostScript) に代わり、PDF ベースの描画モデルを採用したもの。

Mac OS X v10.4 (Tiger)ではビデオチップのプログラマブルシェーダを使って、描画演算をほぼ全てビデオチップ内で実行できるQuartz 2D Extremeを実装する予定であったようだ。(開発途上のまま搭載されオフにされており、正式にはサポートされていない。)

最近は、この隠し機能をONにして性能アップを試みるのが Mac ユーザの間で流行っているようです。

どちらにせよ、アプリケーションの描画というのは年々複雑になっていますので、描画のミドルが専用ハードを使おうとするのは当然の成り行きなのかもしれません。

てなわけで、ベータ段階にある Firefox 3.0。

ぼくはまだつかったことありませんが、こいつも OpenGL を介してグラフィックチップの描画支援をうけて動作するようになる、、、はずです。

cairo – Wikipedia

cairoカイロ)は様々なバックエンドに対応したフリーのグラフィックライブラリであり、ソフトウェア開発者にデバイスに依存しないベクトルベースのAPIを提供する。現在、X Window SystemWin32 GDIQuartzOpenGLglitz経由で)、ローカルなイメージバッファ、PNG画像、PDFPostScriptSVGなどの出力をサポートするバックエンドを持つ。cairoは、利用可能な場合はハードウェアアクセラレーションを利用するように設計されている。

今回の Gecko は描画が cairo というライブラリに移行した最初のものになりますが、OpenGL サポートが enable になって出荷されると思われます。 これにより、画面のレンダリング時の基本描画、アルファブレンディング、アンチエイリアス等々、速く描画できるようになるハズです。 (そのかわり、Firefox 3.0 系は Windows 9x 系で使えなくなる)

周りの評判を聞いていると結構速いそうです。 まー描画以外のパフォーマンスアップも当然あると思うので一概にはいえませんが、楽しみな修正の一つです。 🙂