WordPressに投稿の更新日を表示するやり方を覚える

WordPressに投稿の更新日を表示するやり方を覚える

WordPressに投稿の公開日を表示するやり方を覚えてから、WordPressで投稿の更新日も表示するやり方も覚えたので記事にまとめておきます。

投稿の更新日を表示するために使用するWordPressの関数をどのように使えばいいのか?を覚えてしまえばWordPressでの更新日の表示は覚えやすいです。

 

投稿の更新日を表示するWordPress関数

 

はじめにWordPressで投稿の更新日を表示するときに使用するWordPress関数2つを覚えてみてください。

 

  • the_modified_date
  • get_the_modified_date

 

どちらもWordPressのループ内で使用します。

the_modified_dateは投稿を最後に更新した日付を表示できるWordPressの関数です。一つの投稿を何度か修正をして最後に更新した日付が投稿の「更新日」として表示できます。

 

<?php the_modified_date( $d, $before, $after, $echo ); ?>

 

引数には第一引数になる$dで更新日を表示する書式が決められます。たとえば第一引数に「Y.n.d」と日付のフォーマット文字列を指定すると、日付の書式が「2021.4.27」のように投稿の更新日をWordPressに表示できます。

the_modified_dateで更新日を表示するときに引数を省略した場合はWordPressの管理画面の設定から「一般」⇒「日付形式」で設定している日付の書式で更新日を表示します。これが初期値です。

the_modified_dateの引数「$before」と「$after」は、第一引数を使用して表示される公開日の前後に表示したい文字列を指定します。

 

<?php the_modified_date('Y.m.d','<span>','</span>'); ?>;

 

たとえばWordPressに更新日を表示するときにthe_modified_dateの引数を上記PHPコードのように記述します。

 

  • 第一引数 ’Y.m.d’,
  • 第二引数 '<span>’,
  • 第三引数 '</span>’

 

<span>2021.04.28</span>

 

出力結果は文字列で更新日を表示、更新日の前後にはHTMLのspanタグをマークアップした公開日を出力して表示できます。

そして第四引数を省略した場合は更新日を表示します。falseを指定すると公開日を値として取得、trueにすると公開日を表示です。trueが初期値です。

 

Advertisement

 

一方でget_the_modified_dateという関数は「投稿を最後に更新したときの日付を文字列で取得する」WordPressの関数です。

 

<?php echo get_the_modified_date( $format ); ?>

 

取得ではなくget_the_modified_dateで投稿の更新日を表示するやり方は、ループ内に記述するときにPHPのecho文を使用して更新日を表示します。

また引数に日付のフォーマット文字列を指定することで、WordPressに表示する更新日の日付の書式をサイトに合わせて表示することができます。引数を省略した場合はWordPressの管理画面の「設定」⇒「一般」⇒「日付形式」で設定している日付の書式で更新日が表示です。

 

the_modified_dateで更新日を表示

 

実際に記述したコードを見ながらWordPressで投稿の更新日を表示するやり方を覚えるヒントが掴めればと思います。

 

<time class="post_time">
    <ul>
        <li>公開日:<?php the_time('Y.n.d'); ?></li>
        <li>更新日:<?php the_modified_date(); ?></li>
    </ul>
</time>

 

WordPressに更新日と共に公開日も表示する記述です。

公開日を表示しているWordPressのthe_timeの記述については以下の記事を参考にしていただければと思います。

 

WordPressに公開日を「表示」または「取得」する

 

更新日を表示するthe_modified_dateは引数を省略してます。例としてトップページの記事一覧に更新日を表示するためにindex.phpのループ内に上のコードを記述。

 

 

上の画像はthe_modified_date()の引数を省略して使用した場合の更新日の表示結果です。更新日の日付書式がWordPressの管理画面の設定「一般」⇒「日付形式」で設定している日付の書式で表示します。

 

Advertisement

 

次に記述パターンを変えてthe_modified_date()の引数を使用してWordPressに投稿の更新日を表示する場合です。

 

<time class="post_time">
    <ul>
        <li>公開日:<?php the_time('Y.n.d'); ?></li>
        <?php the_modified_date('Y年n月j日(D)','<li>更新日:','</li>',); ?>
    </ul>
</time>

 

引数を省略した記述と同じ結果で投稿の更新日をWordPressに表示できます。表示はできますが公開日と更新日を同じマークアップにしている場合なら引数を省略した書き方でコードを統一したほうが見やすくて良いかと思います。

 

get_the_modified_dateで更新日を表示

 

get_the_modified_dateでWordPressに投稿の更新日を表示するやり方です。コードを見ながら理解を深めてみてください。

 

<time class="post_time">
    <ul>
        <li>公開日:<?php the_time('Y.n.d'); ?></li>
        <li>更新日:<?php echo get_the_modified_date(); ?></li>
    </ul>
</time>

 

get_the_modified_date()で投稿の更新日を表示するときは、get_the_modified_date()関数の前にPHPのecho文を記述します。

 

 

更新日の表示結果は上の画像です。get_the_modified_date()の引数を省略しているのでWordPressの管理画面の日付形式で設定している日付の書式で更新日が表示します。

「更新日が表示できないんだけど…」とならないようにechoの記述を忘れないようにするのを覚えておきます。

 

 

echoを記述しないでget_the_modified_date()を使用した場合は更新日の値を文字列で取得するだけになります。上の画像で青い背景部分にvar_dumpで更新日の取得を確認しています。

get_the_modified_date()で投稿の更新日を値として取得する、または文字列で表示するやり方を覚えておくと、次の見出しから説明している条件分岐を使用して更新日を表示するやり方で活用できます。

 

投稿を更新してないときの更新日の表示

 

すでに更新日と公開日を表示する基本的なコードを載せていますが、WordPressに投稿の更新日と公開日を表示した場合に気になるかもしれないこと「投稿を更新してないときの更新日の表示方法」を説明します。

 

<time class="post_time">
    <ul>
        <li>公開日:<?php the_time('Y.n.d'); ?></li>
        <li>更新日:<?php echo get_the_modified_date(); ?></li>
    </ul>
</time>

 

WordPressではループ内に公開日をthe_time()で、更新日をthe_modified_date()を使用することで更新日と公開日を表示できますが、投稿を更新していない場合は更新日が公開日と同じ日付で表示します。

 

 

上の画像で右側の投稿は更新した記事です。一方で左側の投稿は更新していない記事です。

投稿を更新していない記事では公開日と同じ日付で更新日が表示しているのが確認できるかと思います。

 

このとき思うのが「更新日と公開日が同じ日付で表示されるなんてイヤだよ」です。

 

「更新日と公開日が同じ日付で表示されるなんてイヤだよ」の悩みを解決する方法としては、更新してない投稿はWordPressに更新日だけを表示、更新してる投稿では公開日と更新日を表示するというやり方があります。

 

<time class="post_time">
    <ul>
        <li>公開日:<?php the_time('Y.n.d'); ?></li>
        <?php if(get_the_time('Y.n.d') != get_the_modified_date('Y.n.d')):?>
        <li>更新日:<?php the_modified_date('Y年n月d日'); ?></li>
        <?php endif; ?>
    </ul>
</time>

 

具体的なやり方は、更新日と公開日をWordPressに表示するときの記述にPHPのif文で条件式を追加記述します。

条件式は公開日が更新日と同じではない場合に更新日を表示するようにします。

if文のカッコ内で左辺をget_the_timeを使用して公開日の値を取得、右辺にはget_the_modified_dateを使用して更新日の値を取得することで比較する条件を組み立てます。

公開日と更新日を比較する比較演算子は「!=」です。

これによりget_the_time(‘Y.n.d’)の公開日の値が、get_the_modified_date(‘Y.n.d’)の更新日の値と等しくない場合に投稿の更新日をWordPressに表示します。

 

 

逆に公開日と同じ日に投稿を修正して更新した場合は、更新日と公開日が同じではない条件に一致しないため、公開日のみを表示して更新日は表示されないというWordPressでの更新日と公開日を表示する方法として使用できます。

WordPressに投稿の更新日を表示するやり方はコードの記述が少ないので実装は簡単にできます。更新日を表示したいサイトに合わせた日付の書式にして投稿の更新日を表示させてみてください。

WordPress使い方カテゴリの最新記事