WordPress2.8jaにアップグレード・・・!?

2009 年 6 月 16 日

今回も自動アップグレードで楽々アップグレード♪

ファイル更新、DB更新を終えてログインしなおすと、ダッシュボードにこんな記述が。

http://ja.wordpress.org/2009/06/13/attention-autoupgrade-28/

先日リリースしました WordPress 2.8 への自動アップグレードの際に、サーバー上のファイルが削除される現象が報告されています。報告によると、この問題が発生した場合にはサーバー上の WordPress 以外のファイルも削除されるとのことです。

そりゃないわ。
とりあえずサーバー上のファイルを確認してみましたが問題はなさそうですが、念のため前日夜にとっておいたバックアップを保管しておくことにします。

しかしこんな重大なバグを含んだままリリースするとは。。。

今後は新バージョンが出てもすぐに飛びつかず、しばらく様子を見るようにしたいと思います。

投稿のリビジョンをまとめて削除するプラグイン Delete Revision

2009 年 6 月 5 日

wpの記事をDBから直接検索・閲覧している時、投稿のリビジョンが邪魔だったので「まとめて削除できる方法はないかな~」と思って探して見つかったのがこれ。

http://wordpress.org/extend/plugins/delete-revision/

一括で削除できます。

記事内の特定文字列をリンク付文字列に変換するプラグイン「SEO Smart Links」

2009 年 6 月 5 日

http://kachibito.net/wordpress/7-traffic-up-plugin.html
こちらのページで紹介されていたのを見て、さっそく使ってみました。

http://wordpress.org/extend/plugins/seo-automatic-links/

いい感じです。
自動的にハイパーリンクを挿入する文字列は、設定画面で「文字列,URL」の形式で指定できます。こんな感じ。

yahoo,http://www.yahoo.co.jp/
google,http://www.google.co.jp/

さらに、他に記事タイトルと同じ文字列の場合も自動でリンクに変換してくれるようです。

まだインストールして数分しか経ってませんが、これはかなりよさげです。引き続き使ってみたいと思います。

カスタムフィールドの使い勝手をよくするプラグイン「Custom Field GUI」

2009 年 4 月 29 日

これはけっこう前から使ってるんですが、カスタムフィールドを使うサイトでは非常に有効なプラグインだと思います。

Custom Field GUI

以下は本家サイトをそのまんま引用してます。

設定ファイルをこんな感じにしておくと

[Plan]
type = textfield

[Favorite Post]
type = checkbox

[Miles Walked]
type = radio
value = 0-9 # 10-19 # 20+

[Temper Level]
type = select
value = High # Medium # Low

[Hidden Thought]
type = textarea
rows = 4
cols = 40

カスタムフィールドの追加・編集がこんな風にできるようになります。

custom-field-gui-2

非常に便利です。

WordPress2.7.1jaにアップグレード

2009 年 2 月 17 日

しました。
今回は初めて自動アップグレードを使ってみたんですが、これは楽ですね。
ボタンひとつでアップグレード完了というのはなかなかすごい。もう以前のようにダウンロードしてファイル展開してアップして、、、という手順には戻れませんね。

というか今年最初のエントリーが2月中旬って、、、
最近wordpress全然触ってないので、ネタもほとんどありません(T-T

WordPress 2.7.1 日本語版リリースのお知らせ

WordPress2.7にアップグレード

2008 年 12 月 16 日

最近忙しくて更新できていなかったんですが、そんな中WordPress2.7がリリースされました。

WordPress 2.7 日本語版リリースのお知らせ

小数点1位のアップデートということは大きく変わってるのかな~と思って早速アップデート。で、管理画面をのぞいてみると予想通り大きく変わってました。

WordPress2.7の管理画面新UI

まだほとんど使ってないんですが、ぱっと見いい感じで情報がまとまってる感じです。

しかしwpはアップデートが早い。マイナーバージョンアップは2週間ごとくらいのペースなので、いっつもアップデートしてるような感覚があります。ユーザーとしてはうれしいことなんですけどね。

mtからwpへの移行

2008 年 11 月 21 日

ここ最近、2つのブログをmtからwpへ移行しました。
いろいろと情報を集め、実際に試してみた結果を残しておきます。

まず最初に参考にしたページがここ。
http://apps.tpot.tk/web:wordpress

最初は「全ページを完璧に移行する。パーマリンクもmtとまったく同じにするぞ!」と意気込んでおり、このページを参考に完璧な移行を目指しました。

が、すぐに挫折。

まず、このページで扱っているmtとwpがちょっとバージョン古めみたいで、ソースコードがけっこう違っていました。
それでも頑張ればなんとかなるだろうと思っていろいろ試したんですが、やっぱりソースをガリガリいじるのは正直シンドイです。しかもmtとwp両方となるとなかなか。。

というわけで、100点満点でなく60~80点くらいを目指す方向へとシフトしました。

続いて参考にしたページがこちら。
http://netscrander.com/archives/mt_to_wp.php

mtのテンプレートでWXR(WordPress eXtended RSS)という、WordPressのブログ移行用のデータを作成するというやり方。
なるほど、この発想はなかったです。というかWXRの存在自体を知りませんでした。

さっそく上記のサイトからテンプレートを取得してmtでWXRを出版。テスト環境のwpにデータを取り込んでみましたが、なかなかいい感じ。コメントやトラックバックもしっかり移行できてます。
カテゴリの階層構造が移行できないといった問題もありましたが、数がそんなに多くなかったのでインポート後に手動で再設定しました。

そんな感じでトライアンドエラーを繰り返しつつ、最終的にこのやり方でデータの移行を完了しました。

最後に、これは自分のオリジナルなんですが、mtで出版したHTMLからwpの記事へリダイレクトする方法を紹介します。

まずはmtでWXRを作成する際、こんな感じでmtの記事IDをカスタムフィールドに入れます。


<wp:postmeta>
<wp:meta_key>mt_entry_id</wp:meta_key>
<wp:meta_value><$MTEntryID$></wp:meta_value>
</wp:postmeta>

そしてデータ移行が完了したら、wpのMySQLで以下のSQLを実行します。

SELECT meta_value , ' => ' , post_id , ',' FROM wp_postmeta WHERE meta_key LIKE 'mt_entry_id';

SQLで抽出したデータをこんな風にphpの変数にして、mt_wp_map.phpとか適当な名前を付けてサーバーに保存。


<?php
$mt_wp_map = array(
1234 => 4 ,
1235 => 5 ,
1236 => 6 ,
1237 => 7 ,
1238 => 8 ,
1239 => 9 ,
...
);
?>

そしてmtの記事ページテンプレートを以下のようにします。


<?php
require("/path/to/mt_wp_map.php");
$wp_post_id = $mt_wp_map[<$MTEntryID$>];
if($wp_post_id)
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: /path/to/wp/?p=$wp_post_id");
exit;
}
?>

あとはページを再構築すれば全記事ページからwpへリダイレクトされるようになります。

できればカテゴリページや月別アーカイブページもリダイレクトさせたいんですが、面倒なので対応しませんでした。
カテゴリページなどは数が多くなければ手作業でやっちゃったほうが早いかもしれません。

以上でデータ移行完了。テーマのカスタマイズについては今回は割愛します。

他にもっといいやり方もあるような気がしますが、とりあえずこれで無事移行できたので満足しています。

mtからwpへの移行はいい勉強になりますので、それなりに程度時間をかけて取り組む価値があると思いました。
今回紹介した方法以外にもバージョンや運用形態によってそれぞれ適した移行方法があると思うので、いろいろ試してみてください。

最後に、移行後しばらくして気がついた、忘れがちなポイントを紹介しておきます。

・静的ファイル各種
robots.txtとかGoogleやYahooのウェブマスターツールの認証用HTMLとか忘れがちなので注意。

・HTMLのコメントがそのまま表示されてしまう
mtの記事内にHTMLのコメント(こういうの→「」)を入れていたんですが、wpではそのまま表示されてしまっていました。

・更新Pingリスト
記事情報以外の設定データは忘れがちなので要注意。

FTPを使ったプラグイン自動アップグレード

2008 年 11 月 17 日

いつものようにwpの管理画面を開いたら、プラグインのところに!(ビックリマーク)が表示されていて、何事かと思ってチェックしてみたら

新しいバージョンの Google XML Sitemaps が利用可能です。バージョン 3.1.0.1 をこちらからダウンロードするか、または自動アップグレードを実行してください。

という表示が出てました。
というわけで、指示に従ってアップグレードを進めます。

FTP接続情報を入力し、開始ボタンをクリックすると、、、

ダウンロードに失敗しました。: 一時ファイルを作成できませんでした

というメッセージが。

wp-contentのパーミッションが問題だったみたいで、707に変更したら無事アップグレードできました。

08/12/02追記:
自動アップグレードも完璧というわけでないので注意が必要なようです。
http://jp.blogherald.com/2008/03/19/wordpress-25-plugins-beware-automatic-plugin-upgrade-problems/

カテゴリの並び順を変える(コーディング編)

2008 年 11 月 12 日

前回、プラグインでカテゴリの並び順を変える方法を調べましたが、今回はプラグインを使わず、自力でカテゴリの並び順を変える方法を模索してみました。

まずはGoogleで見つけたものから。

http://www.marushima.info/?p=54

wp_categoriesにソート用のカラムを追加してしまうというやり方。かなり強引ですが、こういうのもアリですね。
でもwp_categoriesって古いバージョンのwpのものなので、現行バージョンでは使えないです。

次はtheme内でゴリゴリコーディングするやり方。
以下は、自分で実際に試したものです。


$cat_order = array(3,2,1,5,7); //←並べたい順番でカテゴリIDを指定
foreach($cat_order as $cat_id)
{
$cat_v = get_category($cat_id,"ARRAY_A");
echo '<li><a href="/contents/category/'.$cat_v["slug"].'">'.$cat_v["name"].'</a>('.$cat_v["category_count"].')</li>';
}

$cat_orderでカテゴリの並び順を指定しています。このコードだと1階層しか対応していませんが、頑張れば2階層でもいけると思います。

また、記事数のカウントがなくてもいいなら直接HTMLを書いてしまうのも手ですね。
カテゴリが頻繁に増えたり減ったりするサイトでなければ、こういったやり方でも問題ないと思います。

技術にとらわれず、サイト運営の目的や状況に応じて臨機応変に対応していくのが賢いやり方だと思います。

カテゴリの並び順を変えるプラグイン

2008 年 11 月 11 日

2.6.3現在、wpのデフォルト機能ではカテゴリの並び順を指定することができません。

標準のwp_list_categoriesタグはとても便利ですが、orderbyで指定できる値はこの3つのみです。

* ID – カテゴリID
* name – カテゴリ名のアルファベット順(初期値)
* count – カテゴリの投稿数

この貧弱なソートオプションでは、自分の思い通りにカテゴリを並べ替えられる人はまずいないと思います。

そこで登場するのがカテゴリ並び替えプラグイン。
Googleで検索してみたところ、この2つがよく使われているようです。

CategoryOrder(ページ下の方からDLできます)
http://www.coppit.org/code/

MyCategoryOrder
http://wordpress.org/extend/plugins/my-category-order/

いずれのプラグインも、ソート順の値はwp_optionsのテーブルに保持しているようです。

実際にプラグインを入れて使ってみました。

まずこれは標準のカテゴリの管理画面。

CategoryOrderの管理画面

MyCategoryOrderの管理画面

CategoryOrderはシンプルで分かりやすいです。
MyCategoryOrderはドラッグアンドドロップでソート順を編集できます。

なおMyCategoryOrderを使う場合、wp-include/taxonomy.php の上書きが必要になります。WordPressは頻繁にアップデートされているので、バージョンが上がったら使えなくなる、といったことが起こりそうでちょっと怖いです。

CategoryOrderのほうはファイルの上書きは必要ありません。ただ、最終更新が2007年なのであまりメンテナンスされていないようです。

どちらがいいかは好みによると思いますが、個人的にはCategoryOrderのほうがいいと思いました。