WordPressで現在日付を出力するショートコードを作ろう

wordpress

LPを作っていると、記事の日付を現在日時に近くあえて表現したいことがあります。最新記事っぽい演出ですね。ここではそれをショートコードを使って実現します。


current_dateという名前のショートコードを定義し、本文で呼び出した際に現在の日付を指定されたフォーマットに従って出力します。デフォルトのフォーマットはY年m月d日であり、formatという属性を指定することで任意のフォーマットを指定することができます。たとえば、[current_date format="Y年n月j日"]のように使用することで、2023年4月15日のような形式で現在の日付を出力することができます。

目次

現在日付を出力するWordpressショートコード

//functions.phpに記述する
function current_date_shortcode($atts) {
    // 現在の日付を取得
    $current_date = date('Y年m月d日');

    // ショートコードの属性を解析
    $a = shortcode_atts( array(
        'format' => 'Y年m月d日', // デフォルトのフォーマットはY年m月d日
    ), $atts );

    // フォーマットを適用
    $formatted_date = date($a['format']);

    return $formatted_date;
}
add_shortcode('current_date', 'current_date_shortcode');

指定のフォーマット(YYYY/MM/DD hh:mm)に整えて出力するWordpressショートコード

日付フォーマットを整えた場合はこちら

// functions.phpに記述
function current_datetime_shortcode($atts) {
    // 現在の日時を取得
    $current_datetime = date('Y/m/d H:i');

    // ショートコードの属性を解析
    $a = shortcode_atts( array(
        'format' => 'Y/m/d H:i', // デフォルトのフォーマットはY/m/d H:i
    ), $atts );

    // フォーマットを適用
    $formatted_datetime = date($a['format']);

    return $formatted_datetime;
}
add_shortcode('current_datetime', 'current_datetime_shortcode');

このソースコードでは、current_datetimeという名前のショートコードを定義し、それを呼び出した際に現在の日時を指定されたフォーマットに従って出力します。

デフォルトのフォーマットはY/m/d H:iであり、formatという属性を指定することで任意のフォーマットを指定することができます。

たとえば、[current_datetime format="Y年m月d日 H時i分"]のように使用することで、2023年04月15日 12時34分のような形式で現在の日時を出力することができます。

指定した時間だけ日時をズラして出力するWordpressショートコード

WordPress用の現在日時を指定のフォーマットで出力し、任意の整数値を引数として受け取り、受け取った整数の秒数だけ時間を遅らせり早めたりするにはこちら。

function delayed_datetime_shortcode($atts) {
    // ショートコードの属性を解析
    $a = shortcode_atts( array(
        'format' => 'Y/m/d H:i', // デフォルトのフォーマットはY/m/d H:i
        'delay' => 0, // デフォルトの遅延時間は0秒
    ), $atts );

    // 遅延時間を取得
    $delay_seconds = absint($a['delay']);

    // 現在の日時を取得
    $current_datetime = new DateTime();
    $current_datetime->modify("+{$delay_seconds} seconds");

    // フォーマットを適用
    $formatted_datetime = $current_datetime->format($a['format']);

    return $formatted_datetime;
}
add_shortcode('delayed_datetime', 'delayed_datetime_shortcode');

このソースコードでは、delayed_datetimeという名前のショートコードを定義し、formatという属性で日時のフォーマットを指定し、delayという属性で遅延時間を秒数で指定することができます。

遅延時間は受け取った整数の秒数だけ、現在の日時を遅らせた日時を出力します。たとえば、[delayed_datetime format="Y/m/d H:i" delay="3600"]のように使用することで、現在の日時を1時間遅らせた日時を2023/04/15 13:34のような形式で出力することができます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次