日付の月を英単語にする
ElementorのPost Infoウィジェットを利用して日付を表示
投稿ページを表示すときや投稿のループを表示するときにその投稿日を表示するためにPost Infoウィジェットをよく使います。
Post Infoウィジェットは投稿者、投稿日、修正日、カテゴリー、タグなど投稿のメタデータを思い通りに表示できる便利なウィジェットです。
投稿日ではウィジェットの中にDateというタイプを選択することで、日時を簡単に表示することが可能です。
日付のフォーマット
日付の表記は国によってまちまちです。
日本では年ー月ー日が一般的ですが、ヨーロッパ(自分が知っている英語圏)では日ー月ー年です。
アメリカでは月ー日ー年と若干バグり気味です。
今回筆者が行おうとしたのは日ー月ー年の並びで月の表示をJanやFebのように略した英単語で表示するというものでした。
本来日時のフォーマット指定で月を”M”で指定すれば良いのですが、日本語版のWordpressを使っていると、”n月”というように自動的に”月”が追加された形で表示されてしまいます。
ショートコードで解決する
強制的に日本語フォーマットをスキップするには記事の投稿日を取得して、内部的に英語フォーマットで文字列を出力する方法で解決することができます。
function.phpにスクリプトを追加する
記事の投稿日を取得して意図したフォーマットで文字列を出力するスクリプトを使用中のテーマに含まれるfunction.phpに追記します。
add_shortcode('en_post_date', function() { // 日付を取得 $date = get_post_time('d-M-Y', false, get_the_ID(), false); // spanタグとCSS(font-weight)を直接付与して出力 return '' . $date . '
';});
上記のスクリプトを追記すると、”en_post_date”というショートコードを挿入した部分に”d-M-Y”のフォーマットで日ー月ー年の文字列が表示することができるようになります。
Post Infoの表示アイテムを調節
日付を表示するにはDateタイプを利用すると前述しましたが、今回のショートコードではカスタムタイプを利用します。
カスタムタイプを選択して、en_post_dateをショートコードとして入力します。