サポート » 使い方全般 » 日付によってタイトルを変更したい

  • 解決済 wanwanco

    (@wanwanco)


    いつもお世話になります。
    日付によってタイトルを変えなければならなくなり、非常に困っています。
    たとえば、開催日前のタイトルに<ごあんない>と入れ、日付が過ぎた場合<終了>と入れたいのですが、何かいい方法などはありますでしょうか?
    よろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • こんにちわ、wanwancoさん。

    以下の様な方法で実現が可能かと思います。

    1. カスタムフィールドに enddey などの名前で終了日時や期限を入れて保存しておく
    2. カスタムフィールドの値と現在日時を比較して条件分岐

    カスタムフィールドの作成はプラグイン ( Advanced Custom Fields ) などを使ってサクッと実装してしまえばよいと思います。

    スレッド開始 wanwanco

    (@wanwanco)

    ご返信ありがとうございます。

    参考にさせて貰い、カスタムフィールドで日付を設定してfunction.phpに以下のように追記しました。

    // イベント切り替え用関数
    function normalizeTime($date_str) {
    // 年月日の各パーツを分割する
    preg_match( “/([0-9]*)年([0-9]*)月([0-9]*)日/”, $date_str, $data );
    if ( Count( $data ) != 4 ) {
    return $str;
    }

    // 先頭0埋めでYYYYMMDD形式の日付文字列に変換する
    $outStr = sprintf( “%04.4d/%02.2d/%02.2d”, $data[1], $data[2], $data[3] );

    return strtotime($outStr);
    }

    また、以下のようにテンプレートに追記しました。

    <?php
    $event_date = post_custom(‘event_date’);
    $event_date_time = date_i18n(‘Ymd’, normalizeTime($event_date));

    if (date_i18n(‘Ymd’) > $event_date_time) {
    echo “<イベント終了>”;
    } else {
    echo “<ご案内>” . esc_html($event_date);
    }
    ?>

    しかし、うまく分岐ができず、ずっと<イベント終了>と表示されてしまいます。

    $event_date = post_custom(‘event_date’);

    が、array() になっていませんか?

    スレッド開始 wanwanco

    (@wanwanco)

    すいません、ちょっと意味がわからないのですが、どういった意味なのでしょう?

    array() になっていませんか?

    コード自体は上記書いたとおりなので、コード自体の問題なのでしょうか?

    カスタムフィールドは、端折って、20141212 形式

    <?php
    $event_date = post_custom('event_date');
    //これだと、間違って、カスタムフィールドに2回 event_dateを入力すると配列になる
    //なので、var_dump( $event_date ); してみてはどうでしょう という意味です。
    
    $event_date = get_post_meta( $post->ID , 'event_date' , true );
    //これは、常に文字列で取得
    
    if ( date_i18n('Ymd') > $event_date ) {
    echo "<イベント終了>";
    } else {
    echo "<ご案内>" . esc_html($event_date);
    }
    ?>

    スレッド開始 wanwanco

    (@wanwanco)

    重ね重ねありがとうございます。
    うまく動きました。

    ちょっとpost_customの使い方よく分かっていませんでした。
    ありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「日付によってタイトルを変更したい」には新たに返信することはできません。