今さら感がありますが
スライドショー表示でよく使うプラグイン「Easing Slider」っていうのがあります。
このプラグイン、前は無料版で「Easing Slider ”Lite”」っていうのがあったんですね。
このプラグインはスライドショーが1つしか保存出来ないのですが、それはそれで使い勝手が良かった。
ほとんどのサイトではトップページだけしか表示しないので。
で、この”Lite”の時は例えばヘッダーのPHP(header.php)に
<?php if ( function_exists( "easingsliderlite" ) ) { easingsliderlite(); } ?>
この1行を記述すれば良かったんですが、「Easing Slider」自体が無料になり、いつしか”Lite”のアップデートを行うと”Lite”がはずれて「Easing Slider」になったんです。
それはそれでプラグイン制作者さんに感謝!!
いくつもスライドショーが作れるようになったんです!!
ただ・・・今まで使っていた上記PHPコードで動いていたスライドショーは動かなくなりました。
上記PHPコードではなく今度は下記のように記述するようになったためです。
<?php if ( function_exists( 'easingslider' ) ) { easingslider( 1521 ); } ?>
この easingslider( 1521 ) の 1521 はスライドショーのPOST IDです。
さて、困りました。
なにが困ったかというと「ニワトリが先かたまごが先か」みたいな事象に陥ってしまったのです。
どういうことかというと、テーマ作成する際に”Lite”ならスライドショー1つだったので上のコードでPOST ID指定などなかったため、プラグインを入れる前提ならなにも考えずに作れたものが、POST ID指定する必要があるためテーマを作りながらWordPress上でスライドショーを作り、そのIDを取得し書き入れる必要が出てきたのです。
Easing Sliderのコードをずーーーと見るとどうやら
wp_options テーブルに
easingslider_lite_slider_id っていうキーで POST ID を格納してあげると
easingsliderlite(); っていうメソッドで動作するようなんです(未検証です。すみません)
なーーんだかそれでも腑に落ちないので
当てずっぽうに一番最初に作ったスライドショーが出るような施工をしてみました。
Easing Slider プラグインが入っている大前提で書きます。
functions.php に下記のコードを追加します。
※どこでも良いはず・・・
function easingsliderlite_() { global $wpdb; $query = "select MIN(ID) AS ID from ".$wpdb->prefix."posts where post_type = 'easingslider' AND post_status = 'publish'"; $results = $wpdb->get_results($query); if ( $results != NULL ) { $min_slider_id = $results[0]->ID; if ( function_exists( 'easingslider' ) ) { return easingslider( (int) $min_slider_id ); } } return "<!-- slider -->"; }
本来は easingsliderlite() ってメソッドが使用出来れば良いんですが
まだ Easing Slider プラグインの方で抑えていらっしゃるので使えませんでした(笑)
そして、使用する箇所には下記のコードを記述します。
<?php if ( function_exists( 'easingsliderlite_' ) ) { easingsliderlite_(); } ?>
これで前のような使用感が出ました!
もちろん複数使えるままですし、ショートコードでページに入れる分にはまったく使用感損ねてないんですけどね。
いつも重宝しているプラグインなので、感謝しています!!