wp-kougabu (画像付きアーカイブ)

初出日: 2008年5月5日 | 最終更新日: 2010年2月7日
投稿者: hiromasa | パーマリンク

概要

WordPress の投稿やページにアップロードされた画像ファイルを抽出し、サムネイルでページに一覧表示するショートコードを提供します。過去に投稿した画像をサイトに一覧表示しそこから本文にリンクされる、画像付きアーカイブのようなプラグインです。

wp-kougabu

また、バージョン 1.00 よりテーマ内などで使える関数が新設されました。 テーマ内の任意の位置で、好みの大きさにリサイズしたランダムイメージなどが実現できます。 値のみを返値する指定もできるのでプログラムから呼びだして利用することもできます。

WordPress 2.7 以降で動作します。(WordPress 2.6 でも動作するかもしれませんが確認はしていません)

MySQL は 5 系で確認。 MySQL 4.1 でも動作しました。サブクエリを使っているため、4.0 以前は不可と思われます。 2008.07.06 version 0.12 からサブクエリは削除されたので、多くの MySQL バージョンで動くハズです。(yuriko さん、ありがとうございます :-)

PHP はあまり難しいことはしていないので、4 & 5 系でいけるはずです。

ダウンロード

wp-kougabu-1.12.zip

インストール

plugins ディレクトリに“wp-kougabu” ディレクトリを作成し、その中に展開したファイルを格納してください。一般的には展開されたフォルダをそのままアップロードすればOKです。

次に wp-content/cache/wp-kougabu ディレクトリを作成し書き込み属性を付与してください。 この操作をしない場合は正しく全てのサムネイルが作成されません。(FTP で作業する場合は、wp-content/cache を作成したあと、さらに wp-kougabu ディレクトリをつくり、707 などの書き込み権限を付与する操作をします)

最後に管理画面からプラグインを有効化すればインストール完了です。 :)

使い方

ギャラリーページを作成したい場合は以下の手順で行えます。

1. WordPress の管理画面より wp-kougabu を有効化します。
2. 新規ページを作成し、その本文に [kougabu] と記入して公開します。

テーマ内の任意の位置で使いたい場合は以下の PHP を関数を呼び出します。(1.00 から追加された機能です)

<?php kougabu_get_images(); ?>

属性

ショートコード、kougabu_get_images 関数では以下の属性を指定することができます。 関数の方は、WordPress のテンプレートタグ同様、文字列を & でつなげる方式と array で渡す方式の両方が使えます。

ショートコード・kougabu_get_image 関数共通

max_width
画像の最大横幅を整数で指定します(px) デフォルトはショートコードは 180、テンプレートタグは 120 です。
max_height
画像の最大縦幅を整数で指定します(px) width と height は関連していて画像のアスペクト比を維持しつつ最大で表示しようとします。
post_id
0 を指定すると全ての画像を対象にします。 post id 番号を指定するとその post のみを対象とします。 デフォルトは 0 です。また関数では array による複数の post_id を渡すことができます。
start
対象となる画像の最初の位置です。 デフォルトは検索結果の最初からです。 start を指定しないと対象全てが出力されます。
count
対象画像の表示数です。 start が指定されているときに有効です。 デフォルトは 50 です。
start_date
画像が添付された投稿の日付を yyyy/mm/dd、yyyy/mm、yyyy 形式で条件指定して抽出します。 この指定日以降の画像が対象となります。 デフォルトは指定なしです。
end_date
start_date に対してその範囲の終了を同形式で指定します。 もし start_date と同じ値をとる場合は、yyyy であれば年、yyyy/mm であれば月、yyyy/mm/dd であれば日をその範囲とします。デフォルトは指定なしです。
title
設定された文字列が記事名(post_title)に含まれている投稿を対象とします。デフォルトは指定なしです。
sort_key
date(投稿日)、title (記事名)、random (ランダム)でソートを行います。
order_by
DESC(降順)、ASC(昇順)を指定します。
sort_key とともに使い、デフォルトは DESC です。

kougabu_get_image 関数のみ

before
出力する img タグの前につける文字列を指定します。 デフォルトは<li> です。
after
出力する img タグの後ろにつける文字列を指定します。 デフォルトは</li> です。
echo
画面に出力するかを指定します。 デフォルトは true です。
array
出力を配列で返すかを指定します。 デフォルトは false です。 echo とは排他動作をし、array が優先されます。
array_ext
拡張形式配列(画像属性の分割)で返すかを指定します。 デフォルトは false です。array が true のときのみ効果があります。バージョン 1.12 で追加されました。

特記事項

バージョン 1.10 より、サムネイル画像とオリジナル画像のアスペクト比率をあわせるように動作を変更しました。もし、1.00 以前をお使いでアスペクト比率をあわせたい場合は、cache/wp-kougabu のキャッシュ画像をいったん削除し、再生成を行ってください。

現行版の画像いっぱいをつかう表現がお好みの方は、wp-kougabu-resize.php の先頭行に設定があります。 コメントイン・アウトすることで 1.00 版の表示になります。

define('KOUGABU_FRAME_NAME', 'nashi');
define('KEEP_ASPECT', true);

//for version 1.00 compatible
//define('KOUGABU_FRAME_NAME', 'maru');
//define('KEEP_ASPECT', false);

バージョン 0.50 より、写真フレームとキャッシュに対応しました。

サーバ負荷を考え表示の上から10個ずつ、フレームを作成し同時にキャッシュが行われます。何度か閲覧を繰り返すことですべてがキャッシュされ高速に表示が行われるようになります。

フレーム画像は images に入っているものが使われます。 画像分割されていて少し大変ですが、オリジナルでつくることもできます。同梱のフレームは背景が白用となっています。 .jpg を使っている関係で透過ができませんので、それ以外の方は自作してみてください。

デフォルトで入っているフレームは、minami さんによって描かれました。 ありがとうございました!。

プラグインは簡単なソースになっていますので、年月指定とかの属性をつけたり、出力する HTML を変えたり、みなさんで改造してみてください。 :-)

いろいろな例

以下、利用例です。 HTML の出力や挙動などが気に入らない場合はがんがんソースをなおしてご利用ください。 :-)

サムネイルをサイズ 200x200 のアスペクト維持で 2カラムにするショートコード

[kougabu max_width=200 max_height=200 columns=2]

画像を指定数単位でページわけする場合のショートコード

[kougabu start=0 count=16]
<!--nextpage-->
[kougabu start=16 count=16]
<!--nextpage-->
[kougabu start=32 count=16]
<!--nextpage-->
[kougabu start=64 count=16]
<!--nextpage-->
[kougabu start=80 count=16]
<!--nextpage-->
[kougabu start=96 count=16]

テーマ内にランダムに抽出した1枚の画像を出力する関数指定例

<?php kougabu_get_images(); ?>

テーマ内にある特定の post_id の記事からランダムに4枚画像を出力する関数指定例

<?php kougabu_get_images(
'before=<li style="display: inline;">&post_id=635&count=4
&max_width=70&max_height=70'); ?>

その他

kougabu_get_images で array = true として値を取得したい場合は次のようにするとよいでしょう。

<?php $images = kougabu_get_images(
array('array' => true, 'post_id' => $post_ids, 'max_width' => 100
, 'max_height' => 100)); ?>

変数に取得した上で、

<?php $url = $images[$post_id][0]; ?>

などとすることでリンク URL を取得できます。第2配列はその記事にくくりつく複数の画像を表します。

機能追加版

syunro さんが、wp-kougabu に機能追加し wp-gatalog としてプラグイン配布してくださっています。 :D

光画部改 at 超☆電依研

あまりにも度が過ぎるワガママ改造(改悪?)なので、混乱を避けるため名前を変えて特定用途プラグインとして公開することにしました。(本ページ末尾よりダウンロード可能)

とても多機能で良い感じです。 公開されていますギャラリーも必見です。
細かな抽出をしたい方は wp-gatalog を使われると良いでしょう。 ありがとうございます!

yutaka さんが、ギャラリーに出したくない画像を指定する修正コードを公開されています。

kougabuに出したくない画像

うちのブログのgalleryのページはhiromasaさん作「wp-kougabu」をつかわせてもらい画像の一覧を表示しています。美しい写真や珍しい写真なら良いのですが昨日の「かゆいの〜」のエントリーのように画像を使うとそのまま細い画像が四つ出てくることになります。メディアライブラリー内の画像を一覧表示するプラグインですから当然ですね :smiley:

バージョン 1.10 より修正ソースコードがマージされています。 ありがとうございます!

更新履歴



2010/02/07 1.12 kougabu_get_images 関数に新規のオプション array_ext を追加しました。画像属性が分割された形式で配列を取得できプログラムから扱いやすくなりました。
2009/07/19 1.10 画像アスペクト比維持モード搭載と処理の高速化
2009/02/21 1.00 API関数の新設と多くのバグフィックス
2009/01/10 0.50 フレームとキャッシュに対応しました。
2008/07/06 0.12 多くの MySQL 対応と、性能向上のため yuriko さんにより修正された SQL を使うように変更しました。
2008/05/05 0.11 新規リリース

作者のエントリ

wp-kougabu 1.12 リリースとぶらりぶらり@hiromasa.another

…ということで、にいさんこと、をかもとさんが現在作成中の豪華エフェクト付きランダムポスト・スライドショープラグインに向けて、wp-kougabu をバージョンアップしました。 kougabu の API がいまいちだったのでプラグインに向けて拡張しています。

wp-kougabu 1.10 リリース@hiromasa.another

変更点は、画像のアスペクト比率維持モードの搭載と、処理の高速化です。 1.00 をお使いの場合は上書きしていただければと思います。 images 内のフレーム画像も増えていますので、忘れずにアップロードしてください。 :-)

ようやく wp-kougabu 1.00 リリース@hiromasa.another

また、HTML を画面に出力するだけではなく array で値を取得できますので、ちょろっとプログラムかくと、うちの検索結果みたいに抜粋記事の前に画像をだしたりできると思います。

wp-kougabu 0.50 & wp-odeckr 1.00 リリース@hiromasa.another

wp-kougabu は去年作りました、画像アーカイブ的なプラグインで、wp-odeckr は Flickr と WP のメディアライブラリを連携するプラグインです。 後者はその名の通り(!?) 特定用途ですが、みなさんのサイトみていると意外と該当の方がいるのではないかと思いリリースしました。

WordPress 2.5 のショートコードと wp-kougabu 画像ギャラリー@hiromasa.another

WordPress 2.5 から備わっているショートコードという API の研究がてら、画像ギャラリープラグイン、 wp-kougabu をつくってみました。 ショートコードの動作をみるのが主体だったので、かなり動きはやばめのプラグインです。

利用例

M’s Life 2 » Gallery


hiromasa.another :o ) » Gallery