サポート » 使い方全般 » ヘッダー画像の条件分岐差し替え方法について

  • 解決済 kissykissy

    (@kissykissy)


    週毎にヘッダー画像を変更したいと考えています。

    現在4半期毎に4個の画像を切り替えているのですが、画像の種類を増やして
    毎週日曜日に切り替えたいと考えています。
    現在は下記で運用しています。

    <?php
    $date = date(“md”);//月日によりヘッダー画像を変更
    if($date>=”0101″ and $date<=”0331″){
    $img = get_template_directory_uri() . ‘/images/title1.png’;
    }elseif($date>=”0401″ and $date<=”0630″){
    $img = get_template_directory_uri() . ‘/images/title2.png’;
    }elseif($date>=”0701″ and $date<=”0930″){
    $img = get_template_directory_uri() . ‘/images/title3.png’;
    }elseif($date>=”1001″ and $date<=”1231″){
    $img = get_template_directory_uri() . ‘/images/title4.png’;
    }
    ?>

    今後行いたい処理は以下の通りです。
    ・画像を4個から14個に増やす(title1.png~title14.png)
    ・毎週日曜日(午前0時)に画像切り替え

    上記の様に日付で分岐することも考えましたが、画像の増減を考慮し曜日で
    順番に切り替える、かつループしない(title14.pngの次はtitle1.png)方法
    があればご教示いただけますでしょうか。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • これで 1 から 14 までの番号を作れます。

    <?php
    $firstsunday = mktime( 0, 0, 0, 6, 28, 2015 ); // 2015年6月28日は日曜日
    $diffsec = time() - $firstsunday; // 経過秒数
    $weeks = $diffsec / ( 60 * 60 * 24 * 7 ); // 何週目か
    $weeks = $weeks % 14 + 1; // 1から14
    ?>

    トピック投稿者 kissykissy

    (@kissykissy)

    gblsmさん回答ありがとうございました。
    ファイル名の連番算出が肝と認識していましたが、除算の余りを利用する
    アイディアは思いつきませんでした。
    gblsmさんのPHPに以下コードを追加し、希望する処理が実現できました。

    <?php
    $img = get_template_directory_uri() . '/images/title' . $weeks . '.png';
    ?>
    <a href="<?php echo home_url('/'); ?>">
    <?php echo "<img src=\"$img"; ?>" alt="XXX" width="xx" height="xx">
    </a>

    これなら分岐も必要ないし、画像ファイル数の増減や切り替えタイミング
    (日ごと・1時間ごとなど)も「% 14 + 1」や「( 60 * 60 * 24 * 7 )」の
    部分を変更することで対応可能ですね。
    この度はお世話になりました。

    トピック投稿者 kissykissy

    (@kissykissy)

    自己レスです。
    日ごと更新で気付いたのですが、夜中12時ジャストに変更されない場合は
    タイムスタンプがGMT(UTC?)とJSTでずれている可能性があるのでその時は

    $diffsec = time() - $firstsunday;
     ↓
    $diffsec = time() - $firstsunday +32400; //GMT+9補正

    と修正して下さい。
    サーバーが設置されている場所によって値は変わると思います。
    (やり方が間違っていたら指摘いただければ幸いです)

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「ヘッダー画像の条件分岐差し替え方法について」には新たに返信することはできません。