カテゴリー別アーカイブ: WordPress

WordPress

「め組」の膳

WordPressって本体にはあまり手を入れたくないのが心情。なぜなら本体やTwentyTenの更新を躊躇してしまうからです。
そこでTwentyTenの子テーマで弄れるデザインを探していたところ、和製のめ組のフリーなを見つけました。

子テーマはそれなりに変更してますが、基本的に本体及びTwentyTenには手を入れてません。これなら更新をためらうことはないと思います。

NextGEN Gallery の導入

先日[ gallery ]機能について、いろいろ調査しましたが、やはりデフォルトの[ gallery ]機能では実現が難しいようなので、結局定番の「NextGEN Gallery」を導入しました。アルバムは最終的にはフォルダ(日付)単位で管理したほうが楽ですね。

以下のページ表示が非常に遅かったのですが、NextGEN Galleryの導入によりスッキリ表示されるようになりました。編集ソースも汚さずにきれいスッキリです。

[ gallery ]機能について

大量(100枚以上)の画像を扱うと<a>タグでは記事を汚すので無理ですよね。そこでWordPressデフォルトの[ gallery ]機能を使うのですが、この機能、グルーピング(グループ化、カテゴリ化)ができない。デフォルトですと記事画像が全部表示されます。取り合えず、2.9からついたincludeオプションでなんとかなんちゃってグルーピングは可能なのですが、いまいち。やっぱりデフォルトの機能では無理っぽい。もちろんFile Galleryプラグインは入れているのですが(大量ですとこれがないと無理)ソートもいまいちですし、元々グルーピングができない。

本当はデフォルトのアップロード機能にてアップしたメディアにて、グルーピングやファイルなどのメタ(昔ですとポインタ)情報のみ管理できるプラグインが理想かなーと思っているのですが。SONYのLife-Xのように。プラグインを削除や変更してもファイルやその情報は削除されたり変更されたりしないようにしたい。

いろいろやってみたのですが、[ gallery include=”xxx” ]で記事に大量のサムネイルを表示しますと、かえってロード時、画面描画に時間がかかってしまい逆に表示が遅くなってしまいます。やっぱり正当なgalleryプラグインを入れ、そのgalleryへのパスだけ埋め込むほうがよい気がしてきました。プラグイン依存なるモデルはあまり好きになれないのですが、いまのところ仕方ないですかね。HTML5レディの時にFlash依存にもなりたくないのですが(ここはAppleと同じ(笑))。
なんかよいプラグインがあったら教えてください。

Counterize II カウンタ更新時刻が9時間ずれる

「Counterize II 時間」でググると出てくる wp-setting.php の「UTC」→「UTC+9」に変更する以下の模範案?なのですが

// Set default timezone in PHP 5.
if ( function_exists( 'date_default_timezone_set' ) )
	date_default_timezone_set( 'UTC' );

// Set default timezone in PHP 5.
if ( function_exists( 'date_default_timezone_set' ) )
	date_default_timezone_set( 'UTC+9' );

 
WPをかじり始めたばかりでまだWPのお作法(慣習)を理解してないのですが、本家がバグとは認識しているかいなかは別にして(チケットは既に上がっているようですが)、そもそも一般的にWPの設計思想においては正しい動きのような気がします。「PHP5ではUTCにしておくよ」的なメッセージがコードにこめられている気がしてならない。
また普通は本体側をゴニョゴニョするより、プラグイン側を弄るのが正しいと思うのは私だけ?しかもCounterize IIのソースはプラグイン編集画面で変更可能ときた。まあ変更箇所はいっぺーなのですが、とりあえず使用している関数のみ以下の対応をしました。
counterizeii/counterize.php を見ますとこんな感じ。

// Returns amount of hits today.
function counterize_gethitstoday()
{
	global $wpdb;
	$today = date("Y-m-d");

// Returns amount of hits today.
function counterize_gethitstoday()
{
	global $wpdb;
	$today = date("Y-m-d", current_time('timestamp'));

このdate()がUTCで時刻を取ってるはずなんで、WP本体側と同じ時刻の取り方「current_time(‘timestamp’)」にするよう変更したほうが正当な修正方法ですかね。もっとよい方法がありそうですが、Counterize II側が本体側と違う時刻の取り方をしているのが原因かと。これなら「設定 > 一般設定 > タイムゾーン」で設定したロケールがちゃんと反映されますし。

counterize.phpには、すでにcounterize_gethitsyesterday()関数を追加してしまいましたし、Counterize II側が直さない限りアップデートしなければいいので。