SimpleViewerをつかって,ブログ上にアルバムをつくる

同期で写真部をつくろうとおもって,いろいろやっている間に,HP上にカッコいいアルバムを表示してくれるツールがあるのみつけました.これを自分のブログでも使おうとおもって,この2,3日いろいろ試行錯誤しました.

使いたいとおもったのが,このSimpleViewerというFLASHで写真を表示してくれるツールです.
デモページがあるのでみてみてください.
SimpleViewer

このSimpleViewerはXMLをちょこっと編集して,写真データがあればすぐに使えます.WordPressだと,そのXMLの編集と画像の加工をすっとばすプラグインもありました.WP-SimpleViewerってやつで検索したらすぐに出てきます.

実はSimpleViewerを使うのは苦労しなかったんですが,WordPressの固定ページの処理でした.

親ページで「Photo」ページをつくって,サブページとして「Gallery」ページをつくり,Photoページ内にサブページ一覧を表示したかったんですが,PHPのことがわからず,断念.自分でリンクを貼ることにしました.

そんなこんなで,できたのがこれ.(上側にある「Photo」ってところからもいけます)
Gallery

たまーに写真追加してく予定です.

写真の撮り方 きほんBOOK ~かわいい、おしゃれをカメラで撮る。~
かくた みほ
毎日コミュニケーションズ
売り上げランキング: 13951

WordPressでmy-hacks.phpを使わない方法

WordPressでは自前のPHPコードをmy-hacks.phpというファイルに書いていたらしいんですが,バージョン2.8からmy-hacks.phpは使わないのがデフォルトになりました。このmy-hacks.phpを代替する必要があったので調べてみました。

ことの発端は,WordPressにメールで記事投稿できるようにするプラグインの「Ktai Entry」をいれようとしたことでした。プラグインのインストール・設定はうまくいったんですが,登録ユーザー以外のメールアドレスを追加しようとしてハマりました。

Ktai EntryのQ & Aにこういうところがあります。
「投稿許可アドレスを別途定義する」

ウェブログ登録ユーザーのメールアドレス以外から投稿を受け付けたいときは、validate_address フィルターを使うと可能です。my-hacks.php に以下のコードを書いてください。$authors 配列は、許可するメールアドレスと対応するユーザー ID を示すものです。適宜修正してください。 function ke_another_author($user_id, $address) {
$authors = array(
‘foo@example.com’ => 1,
‘bar@example.net’ => 4,
);
return isset($authors[$address]) ? $authors[$address] : $user_id;
}
add_filter(‘validate_address/ktai_entry.php’, ‘ke_another_author’, 10, 2);

ここで,my-hacks.phpを使う必要が出てきました。でもよくよく調べると,my-hacks.phpはWordPress2.8以降ではデフォルトで使えない。さらに調べると,my-hacks.phpをプラグインとして,使う方法がありました。

参考「Bye Bye my-hacks.php?」

以下のフォーマットでmy-hacks.phpを書いて,プラグインディレクトリに置くだけでプラグインとして認識されます。

<?php
/*
Plugin Name: my-hacks.php
Plugin URI: http://
Description: my-hacks.php – replacement since WordPress 2.8
Author: DU
Version: 0.1
Author URI: http://
/

/*
* put your hacks here
*/

?>

一番上の部分のコメントのところでプラグインの基本情報を記述します。この部分があると,プラグインのところに表示されます。こんな感じでちゃんとプラグインとして認識しています。
my-hacks.tiff

今回したいのは,Ktai Entryで送信元アドレスを追加することなので,以下のように書いたmy-hacks.phpを作りました。

<?php
/*
Plugin Name: my-hacks.php
Plugin URI: http://
Description: my-hacks.php – replacement since WordPress 2.8
Author: DU
Version: 0.1
Author URI: http://
/

function ke_another_author($user_id, $address) {
$authors = array(
‘hoge@hogehoge.jp’ => 4,
);
return isset($authors[$address]) ? $authors[$address] : $user_id;
}
add_filter(‘validate_address/ktai_entry.php’, ‘ke_another_author’, 10, 2);

?>

これで上手くいくかとおもったら,今度はWordPressの挙動がおかしくなりました。ログインしようとしてもページが更新されなかったり,記事を削除しても,白い画面が出たきり進まなくなったり。原因は自分で書いたmy-hacks.phpの文字コードでした。

sshでレンタルサーバーにログインして,emacsでmy-hacks.phpファイルを作ったんですが,文字コードがなぜかShift-JISになってました。これをデフォルトの文字コード(多分UTF-8)にしました。これでちゃんと動くようになりましたー!!

まとめ
WordPress2.8以降では,my-hacks.phpをデフォルトではサポートしなくなりました。なので,自分でmyhacks.phpをプラグインとして導入する必要があります。上のフォーマットで書いたファイルをプラグインディレクトリ(おそらくはwp-content/plugins)に置いて,プラグインを有効にすれば使えるようになるはずです。このときファイルの文字コードには気をつけてください。

fedoraで.htaccessを有効にするために

FedoraのApacheで.htaccessを使えるように設定したのに,WordPressからは.htaccessを変更できない。
.htaccessファイルのパーミッションもちゃんと666なのに。そんな状態ではまりましたが試行錯誤してなんとかなりました。

解決したんですが,どれがよかったのかがはっきりしません。やったのは,
1.yum updateでカーネルアップデート他,もろもろのアップデート
2.SeLinuxを無効化

この両方をやった後に再起動してみたら,WordPressからの.htaccessの変更ができるようになりました。

一応メモとして。

WordPress 2.7対応「導入&カスタマイズ」実践ガイド―個人ブログも企業サイトも簡単&無料で構築できる!
吉村 正春
秀和システム
売り上げランキング: 3665
おすすめ度の平均: 4.5

2 うんっ?
5 基礎と役に立つ情報が満載
5 WordPressのスタートに最適の1冊
5 手元にもっておきたい1冊です
5 充実した1冊です!

WordPressのメッセージループってなんだ?

AddClipsというブログツールを使おうとしてかなり悩ましいことになりました。

埋め込むためのスクリプトはすぐにできたんですが,これをどこに埋め込んでいいのかがよく分からない。 AddClipsのページにはこう書いてあります。

※以下のコードは、WordPress専用コードになります。WordPressテンプレートの「メッセージループ内」に埋め込み下さい。WordPress専用コードが正常に使えない場合や、トップページ用ボタンを作成する場合は、ウェブサイト用AddClipsコードをお使い下さい。

「メッセージループ内」がどこか分かりません。Googleで調べてもはっきりしたことは分かりません。個別のテンプレート毎にここだというのはあるんですが,一般的にどこなのかが全く分かりません。

試行錯誤してなんとかボタンが表示できるようにしました。以下その結果。

index.phpとsingle.phpの両方を編集しました。index.phpはサイト全体の構成で,個別の記事を表示した状態はsingle.phpで設定が変わりました。どちらのphpに対しても共通してやったことは,<div class=”entry”>・・・</div>の下にスクリプトを埋め込んだことです。

こうすることで,本文の下にAddClipsのボタンを埋め込むことができました。ただ,個別記事を表示したときは「関連記事」の下にボタンが表示されています。この「関連記事」がphpコードのどこの部分に該当するのかがよく分からないので,そのままです。もう少しphpがわかるようにならないと設定できないと思います。

なんとかブログツールを表示するという目的は果たしたんですが,メッセージループがどこの部分なのかは分からないままです。ご存知の方は教えていただけませんでしょうか。

WPtouchとWP Super Cacheを併用する

WordPressのブログをiPhone/iPod touch用に最適化して表示してくれるWPtouchのことは以前書きました。これとブログのキャッシュを利用してブログの表示を高速化するWP Super Cacheを併用するための方法を探しました。

WPtouchを設定した後に,WP Super Cacheをいれると,どうもうまくうごきません。iPhone用ページから元のフォーマットへ切り替えようとしても切り替わらなかったり,逆にiPhone用ページのはずのところが元のページが表示されたりと,散々です。

なんでかと思って,WPtouchの設定の画面を見ていたら,一番下の方に

WP Super Cache support is currently experimental. Please visit this page for more information.

って書いてありました。相性がよくないらしいです。でもそこをなんとかならないかと思って,検索しました。

そしたら設定方法がありました。
詳細は以下のページで。
「Knowledge Base: Using WPtouch with WP Cache & WP Super Cache」

このページにはWP Cacheでの設定も書いてありましたが,WP Super Cacheのときとほとんど同じ要領です。
手順としては
1.WP Super Cacheの最新バージョンを入れる
2.WP Super Cacheの設定ページにいって
3.「Mobile device support.」を有効にする
WPtouch-WPsuperCacheq1.jpg

4.iphone, ipod, androidなど,表示を有効にしたいデバイスの名前を「Rejected User Agents」に追加
WPtouch-WPsuperCache2.jpg

5.「Delete Cache」でキャッシュを消去

これで,WP Super Cacheを使いつつも,iPhoneでちゃんとブログが表示されるはずです。ポイントは4番目のRejected User AgentsでiPhoneなどでキャッシュが使われないようにするところだと思います。