WordPressでthe_contentとthe_excerptにadd_filterしたんだけれども
Posted on | 2010/8/8 18:10:22
長らく、WordPressをアップグレードするたびにfeed-rss2.phpにFlickrの画像の読み込みコードを追記し直すという作業に四苦八苦しておったのですが、このたびadd_filterでthe_contentとthe_excerptに追加しちゃえば良いということに気付きました。ですが、これがクセモノでした。
function getFlickrContent($content) {
$id = get_the_id();
$flickr = get_post_meta($id,’Flickr’,TRUE);
if ((!empty($flickr)) && (!is_home())) {
echo ‘<p><img src="’.$flickr.’_b.jpg" /></p>’;
}
return $content;
}
add_action(‘the_content’, ‘getFlickrContent’);
function getFlickrExcerpt($excerpt) {
$id = get_the_id();
$flickr = get_post_meta($id,’Flickr’,TRUE);
if ((!empty($flickr)) && (is_home())) {
echo ‘<a href="’;
the_permalink();
echo ‘"><img src="’.$flickr.’_t.jpg" class="imagel" /></a>’;
}
return $excerpt;
}
add_action(‘the_excerpt’, ‘getFlickrExcerpt’);
何が問題かというと、それぞれ元のデータから、$contentと$excerptが生成されるんじゃなくて、まず$contentがあって、それを整形して$excerptが生成されるという段階を踏んでいるようなんですね。というわけで、普通にやるとthe_excerptにはFlickrの大きい画像と小さい画像、両方読み込まれてしまうと。そこで、今回のデザインではトップページでしかthe_excerptを使っていないので、トップページであるかどうかを判別する処理を付け加えて解消。 the_content_feedも$contentをベースに生成されてるっぽいので、上の書き方でthe_contentと同じアクションがthe_content_feedに追加されます。なんかもう少し普遍的な方法もありそうですが。。。
とりあえずこれで今後は躊躇せずWordPressのアップグレードが行えるので一安心です。


意外と知らない、「ヒトリシゴト」。案外、愉快で、楽しいです。気軽に読める、ビジネスエッセイ。

プランナー、加藤康祐のブログ、kosukekato.com : the idea espressoに掲載したコラム、2006/7/20「歴史は作られている」から2010/5/23「行為が流通するプラットフォームに新しい時代を感じる」を一冊の本にしました。

今話題のInstagramを使った写真集です!あなたもInstagramするきっかけになれば!68点の写真を収録。
- blog.daichisakota.com - ちょっと考えられないくらい美味かった「いわもと Q 」(麹町)
- TechCrunch Japanese - Instagramのファウンダのガールフレンドが自作のWebアプリをバレンタインデーギフトに
- TechCrunch Japanese - アメリカの世帯でケーブルTVの解約増加―視聴方法は大幅に多様化(Nielsen調べ)
- TechCrunch Japanese - Foursquare、モバイルアプリケーション版でも「探索」を充実して「地域検索エンジン」機能を強化
- TechCrunch Japanese - LinkedIn、ウォール街予測を上回る。Q4売上は105%増の1.677億ドル
- ハッカー集団、シマンテック「pcAnywhere」のソースコード公開 - CNET Japan
- blog.daichisakota.com - フリーランスになって一週間が経ちました












