この記事の所要時間: 45

今さら感がありますが
スライドショー表示でよく使うプラグイン「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_(); } ?>

これで前のような使用感が出ました!

もちろん複数使えるままですし、ショートコードでページに入れる分にはまったく使用感損ねてないんですけどね。

いつも重宝しているプラグインなので、感謝しています!!