TRAFFIC INFORMATIONのライブと写真 〜 2011年01月

TRAFFIC INFORMATIONというバンドのライブに、先日行ってきました。
このバンドは、プログレのオリジナル曲を中心に演奏し、心地よい変態的な変拍子(笑)やミュージシャンのテクニックが見所です。

2009年には、ユニバーサルミュージックからアルバム「ROUND1」が発売され、増刷もされました。ちなみにジャケット類は、私のデザイン♪(^_^)v
今年2011年には、2枚目の発売を予定しています。すでに私も裏方で関わらせて頂いております。楽しみです!

高校時代からの友達の永井氏のバンドで、私は会場の隅に隠れながらカメラマンをしています(笑)。本日はその写真の中から幾つか公開します。


TRAFFIC INFORMATION LIVE

TRAFFIC INFORMATION LIVE 2011.01.26. in 池袋マイルスカフェ

永井氏 (Bass)

永井氏 (Bass) 〜 ネックで独特な演奏をしている場面。彼はベースの可能性を追求している。

阿部氏 (Piano)

阿部氏 (Piano) 〜 クラッシックでも活躍する阿部氏の繊細なサウンドがスパイスとなる。

吉田氏 (Drum) と永井氏

吉田氏 (Drum)は、演奏にも人間的にも迫力がある。実は有名な方なのだ。

加藤氏 (Guitar)

加藤氏 (Guitar)は、超絶的な早弾きと泣きのソロが素晴らしい。

阿部氏と萱谷氏 (Percussion)

奥の萱谷氏 (Percussion)は、数多くの打楽器・マリンバなどを涼しい顔でこなす。

吉田氏と視線

吉田氏と視線。

演奏風景

演奏風景。

萱谷氏

演奏前の萱谷氏。

他の写真は、バンドのサイトで順次公開予定です。公開されています。
演奏は、ライブやCDでぞうぞ! (^_^)

猫のサスケの写真 〜 2011年01月

久々に、我がサスケ館で飼っている猫、サスケの写真を公開します。新しいサイトでは初登場ですね。
写真はクリックで拡大します。



窓際のサスケ君

窓際のサスケ君です。
昨年はまた骨折をしてくれて大騒ぎでしたが、その右腕はもう治ったといっていいでしょう。良かったねぇ。


ソファーに寝転ぶサスケ君

ソファーに寝転ぶサスケ君です。
写真的にはごちゃごちゃした背景に溶け込んでしまって、猫だか馬だかわからなくなっちゃいました。(わかるって!)


偉そうなサスケ君

なんだか偉そうなサスケ君です。
サスケも大分歳をとりました。13歳です。人間でいうと70歳ぐらいに例えられるそうです。

とりあえず本題はここで終わりですが、おまけ写真へと続きます・・・



ちょっと不機嫌なサスケ君

おまけ写真。
目の前でカメラを構えてちょこまかするもんだから、ちょっと不機嫌になってます。
この顔超ウケる〜〜!ククッ(私の意地悪な笑い)
って、親バカ的飼い主にしかわからないんでしょうね。(^_^;)


更に、おまけのおまけ写真へと続きます・・・



膝に乗るサスケ君

よく膝の上に乗ってきます
携帯のダメダメ写真。こんな状態ですからデジ一眼が手元に取れないのです…。


変な寝方のサスケ君

この寝方、ありなんですか…???

色々と邪魔をしてくるサスケ君ですが、私が寝るときも腕と脇の間に潜り込んでくるので、非常に辛い体勢で寝続けなければなりません。そのうち私は、血流が悪くなってエコノミーネコノミー症候群にでもなりそうな予感…。(@_@;)
サスケには何度も寝首をかかれましたが、それも作戦の1つだと思われます。

そう思うと先程の写真も、良からぬことを念じながら腕にも殺意が込められているように見えてきます。


さて、パソコンでもしようかと・・・

サスケ君のせいで…

あの〜、ひじょ〜に作業しにくいんですけれど・・・




またね!

命名してみ〜な、ベイビ〜

先日、妹の赤ちゃんの名前が決まりました。
(名前は決まってたけど、漢字が決まってなかったのです)

命名!!
(もちろん私が付けた訳ではないけど、書きながら一人で盛り上がってます)

その名は・・・

心菜みいな

です。

「心」は「み」と読むそうで、当て字とのことでした。(「ここな」ではありません!)

で、名前の意味は・・・


・・・聞き忘れた・・・命名の記事書いてるのに聞き忘れてた・・・(汗)
ということで、今急いで聞いてきました。


「みいな」という読みについては、特に深い意味があるのではなく、両親で気に入った響きから選んだそうです。漢字は、一月生まれなので新たにという想いと、春(新春?)のっ葉のようにすくすく育って欲しい、ということだそうです。(急いで聞いたので若干ニュアンス違うかも)
本当にすくすくと育って下さいね、心菜ちゃん!



最後に心菜ちゃんのお姿をお披露目!

よろしくね!

ちっこいよ〜〜☆
きゃわゆぅ〜〜〜〜〜〜☆♪☆☆♪☆♪ ♪  ♪



WordPressで記事作成者の権限レベルによって動作を変えるには?

記事中で実行するphpコード(ショートコード)でそのような判別が必要になったので、自分のメモを兼ねて書いておきます。
間違っているかもしれないので参考程度にどうぞ。(WordPress3.0と3.0.4で確認)

// WordPressループによる記事の処理中に・・・
$user = get_userdata( get_the_author_meta('ID') );
$user_level = (int) $user->user_level;
if( $user_level >= 8 ){ //権限レベルの判別
	// この行は記事作成者が管理者権限だと実行される
}

上記のソースでいう$user_levelの値で判別してみました。権限レベルの判別の行の「8」が、管理者権限であることを示しています。
この値は、権限レベルの値です。0は購読者、1は寄稿者(1以下は書き手全員)、2〜4は作成者、5〜7は編集者、8〜10は管理者となります。
各書き手の権限レベルは、管理ページ→ユーザー→プロフィール→権限グループの設定で決まります。
(ちなみに読み手の権限レベルではないので勘違い注意。書き手を判別する話)

しかしここまで書いておいて、この権限レベルって、WordPress3.0から非推奨になったらしい。しばらく使えるとは思うけども。代わりの「ユーザーグループ権限とユーザー権限」ってのがあるようですが利用方法…というか意味がよくわかりません(汗)。ただ拡張された感じにも見えるけどどうなんでしょう。エキスパートな方がいましたらぜひ教えて下さい。
わかったらソース直す予定です。

ちなみに自分がこの判別を利用した例は「WordPressの記事内でPHPを実行するショートコード(プラグインではなく)」にあります。

お付き合いありがとうございました。


2013.2.4. 非推奨のget_the_author_IDをget_the_author_meta(‘ID’)に変えました。

WordPressの記事内でPHPを実行するショートコード(プラグインではなく)


Deprecated: get_the_author_ID の使用はバージョン 2.8.0 から非推奨になっています ! 代わりに get_the_author_meta('ID') を使ってください。 in /home/ohaya/wave-sight.net/public_html/haya.wave-sight.net/cms-wp/wp-includes/functions.php on line 5213

Notice: Undefined index: _shortcode_php_user_level in /home/ohaya/wave-sight.net/public_html/haya.wave-sight.net/cms-wp/wp-content/plugins/haya_x-system/haya_x-system.php(105) : eval()'d code on line 1

Notice: Undefined variable: post in /home/ohaya/wave-sight.net/public_html/haya.wave-sight.net/cms-wp/wp-content/plugins/haya_x-system/haya_x-system.php on line 2826

Deprecated: gmmktime(): You should be using the time() function instead in /home/ohaya/wave-sight.net/public_html/haya.wave-sight.net/cms-wp/wp-content/plugins/haya_x-system/haya_x-system.php(2829) : eval()'d code on line 2

WordPressでこのサイトを作りながら、ショートコードについてあれこれ試行錯誤をしつつ、時代錯誤も繰り返している今日この頃…。

そんな中「記事中で任意のPHPコードを動かすのって、ショートコードでも出来るんじゃない?(既存のプラグインを使わずとも)」と思って、やってみたら動いたのでご報告。ちょっと裏技的。
(執筆時2010.07.WordPress3.0、公開時2011.01.WordPress3.0.4で確認)

ソースコードと使い方

ソースコード。ショートコードphp_evalの定義。

// 初期設定などに
define( 'SC_PHPEVAL_USERLEVEL', 5 ); // 実行を許可する、記事を書いた人の権限レベル

// [php_eval] のコード
function shortcode_php_eval( $atts, $content ="" ){
	$r = '';
	$user = get_userdata( get_the_author_meta('ID') );
	$user_level = (int) $user->user_level;
	$level = SC_PHPEVAL_USERLEVEL;
	$level = is_null( $level ) ? 5 : (int) $level; // 未設定はとりあえずレベル5
	if( $user_level >= $level ){
		$r = $content;
		$r = preg_replace( '/^.*
/is'  , '', $r );
		$r = preg_replace( '/<\/pre>.*$/is', '', $r );
		$r = eval( html_entity_decode( $r ) );
	}
	return $r;
}
add_shortcode( 'php_eval', 'shortcode_php_eval' );

とりあえず定番な感じでテンプレートの「function.php」へ書き込めば動くはずです。
人に親切(?)なソースです。色々わかる人なら無駄なく短くできますね。(短いソースも下方に置いてみたよ!)

記事中でのショートコードの書き方は、次の通り。

[php_eval]
 ......php code...... 
[/php_eval]

※上記の</pre >は、必ず半角スペースを取って</pre>にして下さい。(このページの表示の都合)

ちょっとした思いつきですが、たったこれだけで動くのなら使いたくなる人もいるのでは??

特徴と注意点・・・

  • ショートコード内は、必ず<pre>タグで囲み、その中にPHPコードを書くこと。
  • 記事の編集は「ビジュアル」でなく「HTML」で書くこと。また投稿設定「不正にネスト化したXHTMLを自動的に修正する」のチェックを外すこと。プラグインPS Disable Auto Formattingも必要かも。
  • 記事の作成者の権限レベルで、実行するか実行しないか判別している。
  • returnで返した値は、ショートコードのあった場所に出力される。
  • ちゃんと動くかテストしてちょ。

テスト

今日の日付を表示する下記のコードを実行してみます。(※</pre >は、</pre>に)

[php_eval]
return "

今日は「".date("Y年m月j日")."」です。動いてるね!

";
[/php_eval]

ここで実行↓↓↓↓↓↓↓↓

今日は「2025年01月23日」です。動いてるね!

ここで実行↑↑↑↑↑↑↑↑

もちろん実行するPHPコードに注意して下さいね。うっかり$postを書き換えたりして、その後のページの表示がおかしくなるとかありがちです。

読み飛ばしてもいいかもな解説

<pre>タグで囲うのが気持ち悪いですが、これがないとPHPコード内の例えば「"」が「&quot;」になるらしくエラーが出て動きません。あとWordPressが勝手に追加する<p>や<br>タグなどを防ぐためにHTMLで編集。管理画面→設定→「投稿設定の不正にネスト化したXHTMLを自動的に修正する」のチェックも外すこと。同じ目的でプラグインPS Disable Auto Formattingも必要かも。

一応セキュリティ対策で、記事を書いた人の権限レベルによってPHPを実行出来るか決めています。権限レベルとその注意は「WordPressで記事作成者の権限レベルによって動作を変えるには?)」を参考にどうぞ。
しかし不特定多数が編集する環境でPHP実行出来ちゃうのはちょっと恐いですよね。充分に管理が行き届く範囲で使って下さいね。

ご利用は自己責任にて、充分にテストをして問題がないことを確認して使って下さい。<pre>タグで囲むなどその辺りの文字化け(?)対策が完全なのか若干心配です。問題点や解決策がわかっちゃうエキスパートでステキな人がいましたらぜひ教えて下さい!

おまけの短いソース

色々省いて、短くしたソース。

// [php_eval] のコード
function shortcode_php_eval( $atts, $content ="" ){
	$user = get_userdata( get_the_author_meta('ID') );
	if( (int) $user->user_level >= 5 ){ // 権限レベルの判定
		$r = eval( html_entity_decode( preg_replace( array('/^.*
/is','/<\/pre>.*$/is'), '', $content ) ) );
	}
	return $r;
}
add_shortcode( 'php_eval', 'shortcode_php_eval' );

もっと短くしたソース(笑)。権限判定も省略したので誰の記事でも実行されます。自分だけで使うブログならこれもありじゃない??

// [php_eval] のコード
function shortcode_php_eval($atts,$content=''){return eval(html_entity_decode(preg_replace(array('/^.*
/is','/<\/pre>.*$/is'),'',$content)))}
add_shortcode('php_eval','shortcode_php_eval');

ショートコード名はphp_evalじゃなくてもいいけどphpとかありがちのにすると、プラグインなど他のプログラムとぶつかるかも。


さてさて、最後までお付き合いありがとうございます。
皆様の幸せを心より願いまして、あばよっ! またねっ!


2013.2.4. 非推奨のget_the_author_IDをget_the_author_meta('ID')に変えました。