クラス名を追加してサムネイルを投稿


21

投稿のサムネイルを使用してページにリンクしています。

投稿のサムネイル画像にクラス名を追加することは可能ですか?

<li><a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail(); ?></a></li>

回答:


42

うん-使用したいクラスをthe_post_thumbnail()属性引数の一部として渡すことができます。例えば<?php the_post_thumbnail('thumbnail', array('class' => 'your-class-name')); ?>

参照:http : //codex.wordpress.org/Function_Reference/the_post_thumbnail#Styling_Post_Thumbnails


5
しかし、これによりクラスが削除されattachment-$sizeます。
FUXIA

しかし、あなたは、クラス「アタッチメント$サイズ私のクラス名」を追加することができます
サイモン・クーパー

@SimonCooper私がやったので、クラスにはサイズのない添付ファイルがあります。
Zhianc

これは一般的に悪い非一般的なソリューションです。attachment- $ sizeをハードコーディングしても、将来発生する可能性のあるすべてのクラスインジェクションが消去されます。
フュージョン

7

これらのクラスをフィルタリングできます。

function alter_attr_wpse_102158($attr) {
  remove_filter('wp_get_attachment_image_attributes','alter_attr_wpse_102158');
  $attr['class'] .= ' new-class';
  return $attr;
}
add_filter('wp_get_attachment_image_attributes','alter_attr_wpse_102158'); 

を呼び出す直前にフィルタを追加しますthe_post_thumbnail。フィルタは自動的に削除されます。

そこに着くためにトレッキングのビットですが、the_post_thumbnail用途get_the_post_thumbnailいる用途wp_get_attachment_image、そのフィルタを適用します。


関数名「alter_attr_wpse_102158」には特定の意味がありますか?この関数はmyClass-function myClass($ attr){
Simon Cooper

名前は多少説明的で、接尾辞はこの質問を参照しています。それ以外の場合、特に意味はありません。クラス内からプラグインclass--あなたが使用できると言うinstance-- array($this,'methodname')、あなたが使用することにより、フィルタと静的クラスを使用することができますarray('ClassName','methodname')
s_ha_dumを


1
なぜ自分自身を削除するフィルターを追加するのですか?
-AlxVallejo

2
@AlxVallejo:実行したい特定の状況で一度だけ実行されるように。
s_ha_dum

0

画像タグにはこのコードを記述するクラスはありません <?php the_post_thumbnail(); ?>が、画像タグにはこのコードを記述するクラスがあります

<?php the_post_thumbnail('thumbnail', array(
'class' => 'class_name'

)); ?>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.