Re: WPのギャラリーからの画像取得について
永らくありがとうございました › フォーラム › テーマ › WPのギャラリーからの画像取得について › Re: WPのギャラリーからの画像取得について
2011 年 10 月 28 日 2:28 PM
#3308
キーマスター
参考例で利用しているwp_get_attachment_image()は、the_post_thumbnail()内部でも使用している関数で、size指定には
- キーワード(thumbnail, medium, large , full)
- 配列(32,32)等のピクセル単位の幅と高さを表す配列
が使えます、
従って、
<code><?php get_image_by_menu_order(get_the_ID(), ギャラリーの画像順序番号,array(75,75)); ?></code>
のような利用も可能となります。
また、カスタムサイズを使いたいなら
<code>if ( function_exists( 'add_image_size' ) ) {<br /> add_image_size( 'category-thumb', 300, 9999 ); //幅300ピクセル、幅無制限に縮小(縦横比維持)<br /> add_image_size( 'homepage-thumb', 220, 180, true ); //(幅 220px,高さ180pxに切り抜き)<br /> }</code>
のようなコードをfunction.phpに追加して(この例では、’category-thumb’と、’homepage-thumb’という名前のサイズを追加しています。名前は任意です。)
<code><?php get_image_by_menu_order(get_the_ID(), ギャラリーの画像順序番号,'homepage-thumb'); ?></code>
みたいな使い方もできます。
さらに、get_image_by_menu_orderをプラグイン化したいなら
以下のコードを含むget_image_by_menu_order.phpを作成して(単にプラグインであることを示す一定フォーマットのコメント文を追加するだけです。)
<code><?php<br /> /*<br /> Plugin Name: Get Image By Menu Ordrer Number<br /> Plugin URI: http://exsample.com<br /> Description: Get Image by Post Garrary Order (custom function)<br /> Author: Foo<br /> Version: 1.0<br /> Author URI: http://exsample.com<br /> */<br /> if ( function_exists( 'add_image_size' ) ) {<br /> add_image_size( 'width_256', 256, 9999 );<br /> add_image_size( 'width_128', 128, 9999 );<br /> add_image_size( 'width_64', 64, 9999 );<br /> add_image_size( 'height_256', 9999,256 );<br /> add_image_size( 'height_128', 9999,128 );<br /> add_image_size( 'height_64', 9999,64 );<br /> }<br /> function get_image_by_menu_order($postid,$menu_order=1,$size='full') {<br /> $args = array(<br /> 'post_type' => 'attachment',<br /> 'post_mime_type' => 'image',<br /> 'post_status' => null,<br /> 'post_parent' => $postid<br /> );<br /> $attachments = get_posts( $args );<br /> if ( $attachments ) {<br /> foreach ( $attachments as $attachment ) {<br /> if ($attachment->menu_order == $menu_order){<br /> echo wp_get_attachment_image( $attachment->ID, $size );<br /> }<br /> }<br /> }<br /> }</code>
作成されたファイルを、プラグインにアップして有効化しておけばどのテーマからも、
get_image_by_menu_order()を使えるようになります。
要するに、WordPressではテーマ内にあるfunction.phpはプラグインと同等の働きを行っているということです。
このように自分の欲しい機能をテーマ内に仕込んだり、プラグイン化したりを比較的簡単に実現できるところがWordPressの魅力でもあります。
なんかを眺めていると、結構楽しいです。
がんばってください。