Jetpack入れたからwp_get_attachment_image_srcの戻り値が変わったの?

Yoko theme を使用しheaderに画像を出力していました。
いつの間にかアップロードした画像が出なくなったなーと思って調べてみたら、画像の出力元が i0.wp.com. i1.wp.com… に変わってました。
あ〜、Jetpackのどっかのアップデートで「wp.comから画像出力する?」みたいなこと聞かれたかも、かもかも。
CDNみたくしてくれるのねん、とOKしたなー。

う〜ん、でなんでheader画像はデフォルトのヤツだけなの???

if ( is_singular() &&
	current_theme_supports( 'post-thumbnails' ) &&
	has_post_thumbnail( $post->ID ) &&
	( $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) &&
	$image[1] >= HEADER_IMAGE_WIDTH
 ) :
 echo get_the_post_thumbnail( $post->ID , array(1102,350), array('class' => 'headerimage'));

$image = wp_get_attachment_image_src で取得した $image[1] に以前は画像幅(数値)が入ってて $image[1] >= HEADER_IMAGE_WIDTH 定数指定のサイズより大きかったらアップロードした画像を使う、ことになってたらしいす。

Jetpackを有効にすると $image[1] は常に false になります。
これじゃ出力できっこありません。

wp_get_attachment_image_srcJetpack が何か細工をしてるようです。

探してみると class.photon.php, class Jetpack_Photon に記述を見つけました。
でもまだどうしたら良いのか見当もつきません。

Forumの“wp_get_attachment_image_src changed?”というトピックを見ると、やはり原因はJetpackでfilterを追加すると良いらしい。
回答者はJetpack作者なので間違いは無いと思うけど書かれてる方法では解決できません。

無い知恵しぼって考えた。

$jp_photon = Jetpack_Photon::instance();
remove_filter( 'image_downsize', array( $jp_photon, 'filter_image_downsize' ) );
 
if ( is_singular() &&
// 省略
 
endif;
 
add_filter( 'image_downsize', array( $jp_photon, 'filter_image_downsize' ), 10, 3 );

不細工だけど判定前にfilterをリムーブして判定後に元に戻しました。
header画像はwp.comからでは無くなったけど、しょうがないかなぁ。

もっとステキな方法があるはず。
教えて欲しいなー

Jetpack, Infinite Scroll 始めました

イケテルWordPress Plugin Jetpackの新機能Infinite Scrollを有効化しました。
これでサイトは簡単に無限スクロール可能になりました。

対応テーマでないと使用できない様子。
デフォルトTwenty Eleven を使用しています。

こりゃ便利。
必要なJavaScriptも勝手に設定してくれる優れものです。

で、思いました。
カスタムしたテーマだとこういう新機能を導入するのが難しいこと。

テーマファイルをぐちゃぐちゃ書き直した方が簡単にカスタマイズ可能だけど、今回のような新機能の恩恵を受けたいと考えると、テーマは汎用的に作るあるいはデフォルトにしておいてカスタマイズはプラグインやウイジェットを使った方が良さげかなぁ〜なんて。

フックやフィルターとかとか、ものにしないといけなくなるけど…
テンプレートタグ覚えるより敷居たかいもんなぁー

WordPressプラグインJetpackスゲ!

WordPressに新しく登場したAutomattic謹製Jetpackプラグインがスゴイ件。

http://jetpack.me/

詳しくはWordPress.com 日本語ブログ「インストール型 WordPress を Jetpack でパワーアップ」をご覧下さい。

良くわかんないよー、な人はまずインストールしちゃいましょう。
プラグイン > 新規追加
検索:jetpack
でインストールできるはずです。

次にWordPress.comのアカウントIDとパスワード入力を求められるので入力しましょう。
Akismet使うのに多分アカウントは持ってるはずです。
[Authorize]してJetpackの各機能を使うことができます。

Jetpackメニュー画面で各項目の「さらに詳しく」をクリックするとどんなことができるか日本語で説明が出てきます。

Jetpackの名に恥じない色々ま機能がパッケージされた強力なプラグインです。