‘メモ’ タグのついている投稿

WordPressテンプレートの条件分岐

2008 年 11 月 9 日 日曜日

良く忘れてしまうのでコードをメモ。

<?php if (is_home()) {?>
<p>これはホームの場合</p>
<?php } else if (is_single()) { ?>
<p>投稿の場合</p>
<?php } else{ ?>
<p>それ以外の場合に表示されるテンプレート。</p>
<?php } ?>

is_singleは引数をとって、細かく指定することができる。(2.5以降)
例えば
is_single(’17′)  →ページID17の場合。
is_single(’hogehoge’)  →投稿スラッグかタイトルがhogehogeの場合。

is_page()も同様の引数を取る。
is_page() →ページが表示されている場合。
is_page(’42′)  → ID 42のページが表示されている場合。
is_page(’About’) →投稿タイトルがAboutの場合。

カテゴリーの中にいる場合

is_category(’9′)
で、「カテゴリーID9の場合」という指定が出来るけど、カテゴリーの場合むしろよく使うのはこちらだろう。
in_category(’9′)
この条件分岐をテンプレートarchive.phpの中で使うことによって、カテゴリごとの挙動が細かく指定できる。

WordPressのサーバー&ドメイン移転

2008 年 10 月 7 日 火曜日

とうとう独自ドメイン&別サーバーで運用することにしました!
というわけで、何らかの事情でWordPressのホスティングサーバーを変えたいときの為の覚え書き。ちょっと調べた限りでは、サーバー移転の場合の方法はあっても「サーバーとドメイン両方変更」の場合の情報がなかったので。(あまりないケースだとは思いますが。)

WordPressにはログのインポート/エクスポート機能がありますが、それだと記事のパーマリンクやタグ、プラグインの情報などが移動できないので、データベースごとごっそりと移動させます。

サーバーのみ変える場合の手順は以下の通り。(phpMyAdminを使っています。)

  1. 旧サーバーでデータベースを全て選択してファイルでエクスポート
  2. 新サーバーにWordPressをインストールして動作確認
  3. 新サーバーのデータベースを空にする
  4. 1のSQLデータをインポート
  5. プラグイン、テーマ、アップロードデータの移行

ドメインごと変える場合はちょっと手順が増えます。

  1. 旧サーバーでデータベースをwp-optionsテーブル以外全て選択してファイルでエクスポート
  2. 1のファイルを一括置換で旧ドメインから新ドメインに書き換える
  3. /home/***/htmlなどサーバー内のパスも書き換える
  4. 新サーバーにWordPressをインストールして動作確認
  5. 新サーバーのデータベースをwp-optionsのみ残して空にする
  6. 1のSQLデータをインポート
  7. プラグイン、テーマ、アップロードデータの移行

2のドメインおよびパスの書き換えを忘れると、投稿に使った画像が表示されませんし、うまく動作しません。
エクスポートの際、「wp_options」を除外すること、「長いInsert文」のチェックを外すこと、「ファイルに保存する」にチェックを入れることを忘れないでください。
wp_optionsを含めるとどうもうまくいかないようなので、ここだけエクスポート/インポートの手順から外します。(ドメインを書き換えてもうまくいかなかった)
なので移行後にブログの説明やパーマリンク設定などを手動で設定し直す必要があります。

あとはテーマやアップロードした画像などのデータの移行ですね。
SSHでシェルコマンドが使えるサーバーの場合は、SCPでそのまま受け渡しすると便利です。

[hoge@server]$ scp -r ./plugins/ hoge@new.server.info:/home/hoge/blog/wp-content/
[hoge@server]$ scp -r ./themes/ hoge@new.server.info:/home/hoge/blog/wp-content/
[hoge@server]$ scp -r ./uploads/ hoge@new.server.info:/home/hoge/blog/wp-content/

wp-contentごと移しちゃってもいいかも知れません。

シェルが使えない場合は、FTPクライアントで頑張ってダウンロード→アップロードしてください。
以上です!

MovableTypeからWordPressへのPermalink込みの完全移行方法

2008 年 10 月 5 日 日曜日

Movable TypeからWordPressへの完全移転方法をまとめました。普通にログのインポート機能を使うと、パーマリンクを引き継いでくれません。しかし今ググって出てくる情報は、大体がWordPress2.2などの古い情報で、そのままでは最新の2.6系で使うことが出来ません。(やり方は非常に参考になります。MovableTypeからWordPressへのURL込みの移行方法 - Wiki@browncat.org

今回紹介するのは、完全版かつ最新版の修正ファイルです。

さてさて、Movable Type(MT)からWordPressに移行しようとして、最も障害になるのはパーマネントリンク(パーマリンク)の扱いです。
Movable TypeにもWordPressにも、ログのエクスポート/インポート機能があるので、一見すんなりいきそうなんですが、どちらもパーマリンクの情報を持っていない。これって致命的ですよね。今までに張られたリンクや検索エンジンのインデックスを有効に生かすためのコンセプトがパーマリンクなのに、どちらもそれに対応してないってのはどういうこと?

おそらく、ユーザーの流出を防ぐためにわざと対応してないんじゃないかともいます。携帯で言うと番号ポータビリティですよね。

しかし携帯電話と違って、Webアプリケーションなら中身を誰でもいじくれるので、Movable TypeからWordPressへの完全移転を行なう修正ファイルを作りました。

1.Movable Type側の準備

まず、Movable Type側ではエクスポートプログラム
/lib/MT/ImportExport.pm

に、タグとパーマリンクを書き出す行を追加します。

丁度540行目にある

DATE: <$MTEntryDate format=”%m/%d/%Y %I:%M:%S %p”$>

の下に

PERMALINK: <$MTEntryPermalink$>

TAGS: <$MTTagName$>
ID: <$MTEntryID$>
kishi-r.com

2.WordPress側の準備

まずWordPressを通常通りインストールしたら、パーマリンクの設定をMovable Typeに合わせます。

/%year%/%monthnum%/%postname%.html
こんな感じでしょうか。この辺はそれぞれのMovable Type次第ですね。

次に
mt.php.zip

このファイルを解凍して、WordPressの
/wp-admin/import/
にある同名ファイル[mt.php]と差し替えてください。

色々なサイトに書かれている情報からいいとこ取りで、記事ID、タグ、パーマネントリンクを引き継ぐ修正ファイルとなっております。

具体的には、こちら→(minorio のプログラミング・メモ)で紹介されている、Post IDを引き継いだmt.phpをベースに、

325行目

} else if ( 0 === strpos($line, "PERMALINK:") ) { $value = trim( substr($line, strlen("PERMALINK:")) ); $tmpvalue = strrchr($value,"/");
$post-&gt;post_name = substr($tmpvalue, 0, strpos($tmpvalue, "."));

kishi-r.com

こちらのパーマリンク設定を取り入れています。

3.実行

あとはMovable Typeで「エクスポート」、WordPressでMovable Type形式での「インポート」をするだけですが、画像のパスなどを変えるんだったら、インポート前にログをテキストエディタで一括置換しておくと吉です。


MT3.3の場合は左下のほうにあります

MT4.2の場合は冒頭の画像を参照してください。「ツール」→「エクスポート」です。

4.仕上げ

カテゴリーのURL、RSSフィードのURLなどの処置を忘れずに。
WordPressのプラグインで、WordPress > 404 Notifier ? WordPress Pluginsというのを入れておくと、404ヒットがあったときにメールで通知orRSSフィードでお知らせしてくれるので便利です。

UIデザインの重要性

2008 年 10 月 3 日 金曜日

やっぱりなんだかんだ言って、Webサイトなりアプリケーションなりでユーザーにとって最も重要なのはデザインだったりするわけですよ。

しかもそのデザインというのは、見た目の綺麗さというよりも使いやすさ、ユーザーインターフェース(UI)です。開発側は往々にして機能最優先でこちらを二番手ぐらいにしてしまいますけど、両方大事なわけです。

先日、実家で新しい体重計を買ったんですが、この体重計、体脂肪から骨密度、筋肉量や基礎代謝まで図れる多機能体重計なんですが、これらの数値が1秒ごとにめまぐるしく2周表示されて、それで消えてしまう。こっちはどれがどの数値だかもよくわからず、慌ててメモして後で見なくてはいけない。

これは、機能が良くてもUIが粗悪なために、ユーザーに要らぬストレスを抱かせてしまっている典型的な例ですね。この体重計は聞いたことがない海外メーカーの安物でした。

ユーザー体験を決定的に左右するのは、機能それ自体よりもそのデザイン、インターフェースである、ということで、Web制作においてもモックアップ作成時から意識し愛知来たいところです。

上野氏は「とりあえず半分適当でもいいので、見た目を作ってそれを叩き台に」してみようと話す。まずはデザインを起こすということで、HTMLから作ってもよし、Photoshopなどのグラフィックツールでユーザーインタフェースを起こしてみてもよい。

 上野氏はモックアップ作成時の注意点として、「UIデザイン原則」を守ることが重要だと強調している。この原則は、

1. ユーザーに主導権を与える
2. 直接操作の感覚を与える
3. 一貫性を高める
4. 目に見えるようにする
5. 操作を可逆的にする
6. モードを減らす
7. エラーを回避する
8. マジョリティに最適化する
9. ユーザーの作業を加速化する

ユーザーにとってはUIがすべて:UIデザイン原則をソシオメディアが語る - page3 - builder by ZDNet Japan

旧ブログからWordpress2.6への記事ログ移行

2008 年 9 月 11 日 木曜日

他のブログ(Movable Type等)からWordPress2.6への、パーマリンクを保持した移行方法をご紹介します。

ログはMT形式で

まず、ログ出力は、MovableType形式とします。MTはメジャーなブログツールのため、大抵のブログサービス/ツールがサポートしていることと、単純なテキストデータ形式のために計量で扱いやすいことが理由です。

WordPressがサポートしていないブログサービスからの移行の場合、MovableType形式で出力する方法を工夫してください。

MovableType形式は、次のような形式のループで出力されます。

--------
AUTHOR: 作成者名
TITLE: 記事タイトル
BASENAME: ファイル名ベース(post、entryなど)
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: default
ALLOW PINGS: 1
PRIMARY CATEGORY: 親カテゴリ名
CATEGORY: 子カテゴリ名
DATE: 08/08/2008 23:06:13
-----
BODY:
記事本文
-----
EXTENDED BODY:
追記本文
-----
EXCERPT:
(抜粋部分)
-----
KEYWORDS:
(キーワード)
-----
COMMENT:
AUTHOR: コメント名前
EMAIL: mail@example
IP: 127.0.0.1
URL: http://blog.sample.jp
DATE: 09/11/2008 10:19:53 AM
コメント本文
-----
PING:
TITLE: トラックバックタイトル
URL: http://trackbackのURL
IP: host.from.trackback.jp
BLOG NAME: ブログ名
DATE: 09/11/2008 10:38:22
トラックバック本文
-----

Bloggerのようにテンプレートがカスタマイズできるブログサービスの場合、そのサービスがエクスポートをサポートしていなくても、それぞれのフィールドにシステムタグを割り当てて出力することによって、MT形式のログが作成できるというわけです。

参考までに、Smartyを利用した何かのブログの例を置いておきます。
これを全記事出力の設定にすればできあがりです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{foreach item=row from=$blogdata}
--------
AUTHOR: {$CREATOR}
TITLE: {$PAGE_TITLE}
BASENAME: 
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: default
ALLOW PINGS: 1
PRIMARY CATEGORY: {$CATEGORY_NAME}
CATEGORY: {$CATEGORY_NAME}
DATE: {$MONTH}/{$DAY}/{$YEAR} {$HOUR}:{$MIN}:{$SEC}
-----
BODY:
{$CONTENT}
-----
EXTENDED BODY:
{$POSTSCRIPT}
-----
EXCERPT:
 
-----
KEYWORDS:
 
-----
{if $ADD_COMMENT}
COMMENT:
{$ADD_COMMENT}
-----
{/if}
{if $ADD_TB}
PING:
{$ADD_TB}
-----
{/if}
{/foreach}

パーマリンクをどうするか

ただし、デフォルトの状態では、MovableType→WordPressの移行は、パーマリンクの移行がサポートされていません。これでは、せっかく移行してもこれまでにもらったリンクや検索エンジンのインデックスが無くなってしまいますのでちょっと不都合ですね。

これについては、各地で色々な工夫が為されています。
基本的には
 MovableTypeからパーマリンク、ページIDを出力する
 WordPressのインポート時に、それらを受け付けるようにする

という改造を行なう必要があります。

MovableTypeからWordPressへのURL込みの移行方法 - Wiki@browncat.org
ttp://wiki.browncat.org/index.php/MovableType%E3%81%8B%E3%82%89WordPress%E3%81%B8%E3%81%AEURL%E8%BE%BC%E3%81%BF%E3%81%AE%E7%A7%BB%E8%A1%8C%E6%96%B9%E6%B3%95

↑コンセプトとしてはこちらがとてもよくまとまっているんですが、WordPressのバージョンが2.2のため、肝心のWordPressへのパッチが適用できません。import/mt.phpの仕様も一新されているようです。

Movabletype から WordPress への移行(ついでにドメイン移行、パーマリンクリダイレクト)の方法 - minorio のプログラミング・メモ
ttp://d.hatena.ne.jp/minorio/20080825/1219648679

2.6用のmt.phpがこちらにて配布されていたので、使わせていただきました。

というわけで、旧ブログシステムで動いていたブログを、WordPressに移行させることに成功しました。155記事全て移行! これで重い再構築ともおさらばです。あースッキリした。

Joomla!1.5のインストール方法

2008 年 9 月 2 日 火曜日

1.0の開発はすでに終了している(セキュリティアップデートはあり)ので1.5をインストール。1.5の方はまだプラグイン等が充実していないし、日本語のサンプルデータがなかったりするが、この辺はおいおい充実していくだろうと思われる。
以下はインストール手順。眠ってても出来るようにメモ。

  1. Webサーバにディレクトリを用意
  2. wget http://jaist.dl.sourceforge.jp/joomla/32528/Joomla_1_5_6_ja-JP_Stable.zip

     でダウンロード。(ダウンロード元は最新版を)その後、unzip で解凍。

  3. touch config.phpで空のコンフィグファイルを作成。joomlaのインストーラが書き換えられるように権限を701に変更。
  4. ディレクトリにアクセスすると、自動的に/installation/index.phpにリダイレクト、インストールが始まる。
  5. 画面の指示に従っていけば基本的にOK。サンプルデータ(初期データ)のインストールはご随意に。

これだけで終了。簡単すぎて怖い。1.0系のときはまだ色々とフォルダの書き込み権限を変更しなければ行けなかったけど、1.5は本当に簡単。
ただし /cache/ は、Joomlaが書き込みできるように、権限を755にするか所有者をapacheにしておくこと。(書き込めないと外部ニュースの表示などができない)

完了後は、installationフォルダを削除かリネームする。

サンプルデータを入れなかったら、ログインフォームがない!

慌てない慌てない。/administrator/に接続すればログイン画面が表示されるので大丈夫。