ギャラリーをスライダーに

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

ショートコードで作成したギャラリーをスマホでの表示時(スマホ用のテーマを利用)にスライダーで表示したいということで、サイトで利用しているスライダーが bx slider なので、なんとかこれを利用する方法はないかと…

で、これは、ギャラリーをリスト形式で出力するコードをfunctions に書いてスライダーのクラスを指定することで解決したのだが、ids で指定している順番通りに出てこないので、コードを一部書き換えた。

	extract(shortcode_atts(array(
		'order'      => 'ASC',
		'orderby'    => 'post__in',
		'id'         => $post->ID,
		'itemtag'    => 'li',
		'icontag'    => 'p',
		'captiontag' => 'p',
		'columns'    => 1,
		'size'       => 'large',
		'ids'    => ''
	), $attr));

	$id = intval($id);
	if ( 'RAND' == $order )
		$orderby = 'none';

	if ( !empty($ids) ) {
		$include = preg_replace( '/[^0-9,]+/', '', $include );
		$_attachments = get_posts( array('include' => $ids, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );

		$attachments = array();
		foreach ( $_attachments as $key => $val ) {
			$attachments[$val->ID] = $_attachments[$key];
		}
	} else {
		$attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
	}

長いので前後は省略。include、exclude は使わないので省略。