3
31
2011
WordPressのギャラリーにアクセスするコード
WordPressのギャラリー難民?の方へ
A sample shortcode for WordPress gallery refugees.
WordPressのギャラリーショートコードはV2.5から導入されましたが、V3.1となった現在でも基本的な部分はあまり変わっていません.相変わらず使いにくいHTMLコードを吐き出してくれています.
WEBプログラマーであれば自分で PHP のソースコードを追加するなり改造するなりしてカスタマイズすることは容易だと思いますが、単にWordpressを使っているだけの普通のユーザにとってはそれも難しいでしょう.
せめてWordpressのギャラリーが吐き出すHTMLを何の装飾(余計なタグやスタイルを付けない)もしていない素のHTMLタグを吐き出すイメージギャラリーのサンプルコードを載せておきますので、Wordpressのイメージギャラリーを自分で作ってみたい方は一度覗いてみて下さい.
このショートコードはあくまでもサンプル用のテンプレート的なものですので、プラグインとしての実用性はありません.ショートコードの部分は各自で自分の要求に合うように自分で作成して下さい.
サンプルコードのURL: https://y2tech.net/wp_plugins/gallery_db/gallery_db.zip
【追記 6/18 2011 】 上記のサンプルコードを全面的に書き換えました
【例】 lightbox 2.0.4 用に attributes に “rel=lightbox[xxx]” を追加
[gallery_db ngg_gallery=1 attributes=’ rel=”lightbox[test]” ‘ ]
[gallery_db ngg_gallery=1 attributes=’ rel=”lightbox[test]” ‘ ]
【簡単な使い方】
・ショートコードのみを記述した場合 [gallery_db ]
WordPressの標準のイメージギャラリーのデータをアンカータグ+サムネイルの形で呼び出します.
<a href=”xxx” alt=”yyy” title=”zzz” ><img src=”XXX” … /></a>
この場合に呼び出されるイメージはその記事でアップロードされたギャラリーイメージです.
・複数のイメージギャラリーを呼び出す場合 [gallery_db wp_gallery=”1,3″ ]
wp_gallery オプションの値に、呼び出したいギャラリーを投稿した親記事の Post ID をカンマで区切って
羅列します.画像データそのもののアタッチメントIDではなく、親記事のPost ID であることに注意して
下さい.
パーマリンクにPost IDが何らかの形で含まれていれば良いのですが、パーマリンクがカテゴリや日付で
付けられている場合には親記事のPost IDは分かり難いですね.
・NextGen Gallery のギャラリーデータを呼び出す場合 [gallery_db ngg_gallery=”1,3″ ]
ngg_galleryオプションにギャラリー番号を渡します.数字をカンマで区切ることで複数指定可能です.
同様に、 ngg_tags=”北海道,ラーメン” のようにタグキーワードでも呼び出し可能です.
ngg_tags=”北海道,ラーメン” => ”北海道” または “ラーメン” というタグが付いている物に限定(OR条件)
ngg_tags=”丹沢&富士山” => ”丹沢” かつ “富士山” の両方のタグが付いている物に限定(AND条件)
ngg_tags=”鎌倉,静岡&富士山,” => ”鎌倉” または “静岡” かつ “富士山” の両方のタグが付いている物に限定
AND条件が優先されるので、 “鎌倉” または (”静岡” かつ “富士山”)
・selector オプション
何も指定しないと selector=”anchor_with_thumbnail” が仮定され、オリジナル画像へのアンカータグと
サムネイル画像のセットが出力されます.
selector=”image” => オリジナル画像のイメージタグ <img src=”” …> が吐き出されます.
selector=”thumbnail” =>サムネイル画像のイメージタグ <img src=”” …> が吐き出されます.
selector=”image_src” => オリジナル画像のURLを出力 “http://…..”
selector=”thumbnail_src” => サムネイル画像のURLを出力 “http://…..”
・attributes オプション
出力されるイメージタグ(selector=”image”またはselector=”thumbnail”の場合)に、このオプションで
指定した文字列が attributeタグとして付加されます.
例) attributes=’ class=”thickbox” ‘ => CSSクラスを設定
lightbox2.0やThickBoxのグループ指定の[ ]を記述する場合はショートコード自身の
メタ文字と被ってしまいますので、現状では難しそうです.
( ショートコードのAPIについては http://codex.wordpress.org/Shortcode_API )
苦肉の策としては、ショートコードのタグ内では “Square Brackets” [ ]を特殊な
メタ文字に置き換えておいて、後で元の”Square Brackets”に戻すという方法があります.
一つの例としてPHPにはHTMLのエンティティーを元の文字に戻す、htmlspecialchars_decode()
という関数が用意されていますので、
$attributes = htmlspecialchars_decode( $attributes );
という1行を加えておいて、ショートコードタグ内の attributes オプションに
[gallery_db attributes=’ rel=”lightbox[grp01]” ‘ ]
のように”Square Brackets”を記述すればlightboxやThickBoxのグループ指定を行う事が可能です.
CSSのidやclassなども追加できるので、CSSでのレイアウトが行いやすくなります.