WordPress

wp_title関数による日付アーカイブのタイトルがおかしいときの修正【WordPress】

wp_title関数で日付アーカイブのタイトルを出力をすると、「2020年02月」となるはずが「202002月」と表示されました。

他にも「月」が表示されなかったりするなど、日付アーカイブのタイトルがおかしくなるようです。

そこで、functions.phpに次のコードを記述します。

function adjust_date_title( $title, $sep, $seplocation ) {
    $m = get_query_var( ‘m’ );
    $year = get_query_var( ‘year’ );
    $monthnum = get_query_var( ‘monthnum’ );
    $day = get_query_var( ‘day’ );
    $date_title = ”;

    if ( is_archive() && ! empty( $m ) ) {
        $my_year = substr( $m, 0, 4 );
        $my_month = substr( $m, 4, 2 );
        $my_day = substr( $m, 6, 2 );
        $date_title = $my_year . ‘年’ . ( $my_month ? $my_month . ‘月’ : ” ) . ( $my_day ? $my_day . ‘日’ : ” );
    }

    if ( is_archive() && ! empty( $year ) ) {
        $date_title = $year . ‘年’;
        if ( ! empty( $monthnum ) ) {
            $date_title .= zeroise( $monthnum, 2 ) . ‘月’;
        }
        if ( ! empty( $day ) ) {
            $date_title .= zeroise( $day, 2 ) . ‘日’;
        }
    }

    if ( ” != $date_title ) {
        if ( ‘right’ == $seplocation ) {
            $title = $date_title . ” $sep “;
        } else {
            $title = ” $sep ” . $date_title;
        }
    }

    return $title;
}
add_filter( ‘wp_title’, ‘adjust_date_title’, 10, 3 );

僕の場合はこれで無事解決できました。

Leave a Comment