• タグ別アーカイブ: image
  • gallery キャプション付画像のカスタマイズ

    キャプション付画像は、img_caption_shortcodeでカスタマイズできます。

    add_filter( 'img_caption_shortcode', 'textdomain_change_caption', 10, 3 );
    
    function textdomain_change_caption( $none, $att, $content ){
    	var_dump($content);
    	var_dump($att);
    	$my_content= 'hello';
    	return $my_content;
    }

    wp-includes/media.php@core file

    /**
     * The Caption shortcode.
     *
     * Allows a plugin to replace the content that would otherwise be returned. The
     * filter is 'img_caption_shortcode' and passes an empty string, the attr
     * parameter and the content parameter values.
     *
     * The supported attributes for the shortcode are 'id', 'align', 'width', and
     * 'caption'.
     *
     * @since 2.6.0
     *
     * @param array $attr Attributes attributed to the shortcode.
     * @param string $content Optional. Shortcode content.
     * @return string
     */
    function img_caption_shortcode($attr, $content= null) {
    	// New-style shortcode with the caption inside the shortcode with the link and image tags.
    	if ( ! isset( $attr['caption'] ) ) {
    		if ( preg_match( '#((?:<a [^>]+>\s*)?<img [^/>]+>(?:\s*</a>)?)(.*)#is', $content, $matches ) ) {
    			$content= $matches[1];
    			$attr['caption']= trim( $matches[2] );
    		}
    	}
    
    	// Allow plugins/themes to override the default caption template.
    	$output= apply_filters('img_caption_shortcode', '', $attr, $content);
    	if ( $output != '' )
    		return $output;
    
    	extract(shortcode_atts(array(
    		'id'=> '',
    		'align'=> 'alignnone',
    		'width'=> '',
    		'caption'=> ''
    	), $attr));
    
    	if ( 1 > (int) $width|| empty($caption) )
    		return $content;
    
    	if ( $id ) $id= 'id="' . esc_attr($id) . '" ';
    
    	return '<div ' . $id . 'class="wp-caption ' . esc_attr($align) . '" style="width: ' . (10 + (int) $width) . 'px">'
    	. do_shortcode( $content ) . '<p class="wp-caption-text">' . $caption . '</p></div>';
    }
    
    add_shortcode('gallery', 'gallery_shortcode');


  • 投稿の添付画像の表示

    エントリに添付画像がない場合は、falseを返すので、存在確認をした上で表示

    $image01= get_post_meta($post->ID, 'image01', true);
    $thumb= wp_get_attachment_image_src($image01, 'thumbnail');
    if ( $thumb ) {
    echo $thumb[0];
    }
    

    http://ja.forums.wordpress.org/topic/4784?replies=3(サムネールのURL取得)

    $post_thumbnail_id= get_post_thumbnail_id( get_the_ID() );
    $image= wp_get_attachment_image_src( $post_thumbnail_id, 'post-thumbnail' );
    if ( $image ) {
     list($src, $width, $height)= $image;
     echo '<div style="background:url(' . esc_attr( $src ) . ')">';
    } else {
     echo '<div style="background:url(no-post-thumbnail.png)">';
    }


  • テーマディレクトリから、画像を検索ランダム表示

    /**
     * theme/media/ディレクトリから、画像ファイルを検索して、ランダム表示する。
     *
     *
     *
     */
    
    register_sidebar_widget('banner', 'tmn_banner_widget');
    
    	function tmn_banner_widget($args){
    
    		$img_array= glob(STYLESHEETPATH."/media/*{.jpg,.png,.gif,.JPG}",GLOB_BRACE);
    		if(!empty($img_array) or !false){
    		$count= count($img_array);
    		$number_img= rand(0,$count-1);
    		extract($args);
    		echo $before_widget;
    echo '<img src="'.dirname(get_bloginfo('stylesheet_url')).
    '/media/'.
    basename($img_array[$number_img]).
    '" width="100%" alt="'.basename($img_array[$number_img]).
    '" />';
    		echo $after_widget;
    		}
    	}