• かちびと.net

    お手軽WordPress Tips:post_class()にアイキャッチ画像を使用した記事の場合のclassを追加する方法をご紹介。条件分岐などしなくても簡単に追加できます。

    Kudos for

    WordPress jQuery
  • About This

    Web制作に役立つTips、チュートリアル、、マーケティングに役立つ情報などのリソースをほぼ毎日配信しています。宜しければメモ代わりにご利用下さい。詳しい情報はAbout me またはhumans.txtをご覧下さい。

    Kachibito.net is a community-based website for web designers and developers. The site includes a popular weblog, a design gallery, a open source software, design tips, and the various web-news.

  • Links

お手軽WordPress Tips:post_class()にアイキャッチ画像を使用した記事の場合のclassを追加する

スポンサーリンク

WordPressにはpost_class()という関数が
あって、自動で要素にclassを付けてくれ
るんですが、この中にアイキャッチ画像
を使用した投稿の場合にclassを追加する
という、誰に需要があるのか分からない
Tipsシリーズです。

post_class()は僕も殆ど使ったことが無かったんですが(大量のclassが付くので)投稿フォーマットの出現で少し使うようになりました。投稿フォーマットに関しては以前記事を書いたのでご参照下さい。

で、そのpost_class()に、アイキャッチ画像を使った投稿があった際にclassを加える、という方法です。

コード

functions.phpに以下を加えます。

function add_eyecatch_class($classes) {
	global $post;
	if( has_post_thumbnail($post->ID) ) { $classes[] = 'eyecatch'; }
		return $classes;
}
add_filter('post_class', 'add_eyecatch_class');

で、いつものようにpost_class()を使えばいいだけ。

<div <?php post_class(); ?>>

で以下のように実装されます。※長いので少し端折ってます。

<div class="post-60 format-standard post category-jquery category-1 eyecatch">

アイキャッチが使われていない投稿にはeyecatchは含まれません。因みにアイキャッチは和製英語です。どうでも良いですね。

条件分岐より楽じゃないですかね。と思ったけどあんま変らんかな?個人的にはfunctions.phpでいろいろ管理したい派です。

余計なclassを抜く

逆にclassを取りたいなら以下のようにします。

function remove_otiose_class($classes) {
	$classes = array_diff($classes, array('hentry','post','type-post','status-publish'));
	return $classes;
}
add_filter('post_class', 'remove_otiose_class');

ただ、post-IDとかの消し方が良く分からない。というか考えてない。wp-includes/post-template.phpあたり見れば良さそうですけども・・

僕はさほど実害無いので消さなくてもいいやって感じなんですけど、簡単に消せる自由もあってもいい気もしますね。あるのかな?w

お前そんな事も出来ないのか、みたいな素敵なデベロッパーさんからのトラバお待ちしています。

素敵なデベロッパーきましたー!
WordPress で Post Class から Post ID を消す
有難う御座いましたXD

尚、コードは以下を参照しました。
via:WP-Snippets

URL :
TRB :

Comments & Trackbacks

Comments are closed.

Twitter

Web制作に役立つそうなリソースを独断と好みで配信しています。

かちびと.netにリンクの無いトラックバックはお受けいていません。
コメントされる前にガイドラインをご覧下さい。

twitter facebook rss contact

Ads

Posts

Contact

Services