WordPressに新しく実装された投稿サムネイル用のタグthe_post_thumbnail()は出力されるのが画像だけなんだけど、
これにページへのリンクとか拡大画像とかのリンクをつけたいと思うことがあったので関数作った。
構文:
the_linked_post_thumbnail($size = 'medium', $linkto = 'image', $attr = NULL)
$size
画像のサイズ。文字列(thumbnail, medium, large, full)か配列( array(32,32) )で。
$linkto
リンク先。image=フルサイズの画像url、page=投稿記事、NULL=リンクしない
$attr
画像の属性。連想配列形式で指定する
$default_attr = array( 'class' => "zoom", 'title' => 'クリックで拡大', );
テンプレート
デフォルト:サイズ=midium、リンク先=フルサイズの画像
<?php the_linked_post_thumbnail(); ?>
サイズ=サムネイル、リンク先=投稿記事
<?php the_linked_post_thumbnail('thumbnail','page'); ?>
the_post_thumbnailと同じ:
<?php the_linked_post_thumbnail('thumbnail',NULL); ?>
functions.php
function the_linked_post_thumbnail($size = 'medium', $linkto = 'image', $attr=NULL) { if ( has_post_thumbnail() ){ $id = get_post_thumbnail_id(); if(isset($linkto)){ if($linkto == 'image'){ $url = '<a href="'.wp_get_attachment_url($id).'" rel="quickbox"'; }else{ $url = '<a href="'.get_permalink(get_the_id()).'"'; } print $url.' class="linked_post_thumbnail">'.get_the_post_thumbnail(get_the_id(),$size,$attr).'</a>'; }else{ print the_post_thumbnail($size,$attr); } } }