電子書籍の厳選無料作品が豊富!

解説サイトなどをみて、新着記事に関しては以下の記述で「New」マークを表示させることができましたが、新規記事ではなく、既存の記事が更新された場合に「更新」と表示したいのですが、どのように修正すればよいでしょうか?よろしくお願いいたします。

<?php
$days = 1;
$now = date_i18n('U');
$entry = get_the_time('U');
$term = date('U',($now - $entry)) / 86400;
if( $days > $term ){
echo '<span class="new">New</span>';
}
?>

質問者からの補足コメント

  • *上記のコードで新着記事に関してはNewマークを付け、併用する形で更新記事に関しては更新マークを付けたい感じです。

      補足日時:2021/11/11 01:10
  • どう思う?

    おそらくそれで表示自体はできるのですが、新着記事は「New」、更新記事は「更新」と表示したく、

    <?php
    $days = 1;
    $now = date_i18n('U');
    $entry = get_the_time('U');
    $term = date('U',($now - $entry)) / 86400;
    if( $days > $term ){
    echo '<span class="new2">New</span>';
    }
    ?>

    *文字数の兼ね合いで分割して送付させていただきます

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/11/11 11:57
  • うーん・・・

    <?php
    $days = 1;
    $now = date_i18n('U');
    $entry = get_the_modified_time('U');
    $term = date('U',($now - $entry)) / 86400;
    if( $days > $term ){
    echo '<span class="new2">New</span>';
    }
    ?>

    を2つ併記すると後者が優先されてしまってる状況で、両方とも同時に使用したい場合はどうすればいいでしょうか。

      補足日時:2021/11/11 11:57

A 回答 (3件)

両方使いたい場合



$post_time = get_the_time('U');
$modified_time = get_the_modified_time('U');

と2つを別の変数名にして。

NEWの方は更新しようがしまいが24時間は表示するのであれば、
そのまま元のものを使う(変数名は変えたものにしています)。

$days = 1;
$now = date_i18n('U');
$term_post = date('U',($now - $post_time)) / 86400;
if( $days > $term_post ){
echo '<span class="new2">New</span>';
}

次に「更新」の方
get_the_modified_time関数は初投稿時(一度も更新していない時)は
投稿時間get_the_timeと同じ値になっているようなので、
投稿時間と更新時間を比較して、
もし違う(!=)なら更新されたことになるので「更新」を表示。
もし同じなら更新されていないので何もしない。
以下のような記述になります。

if ( $post_time != $modified_time ){
$term_mod = date('U',($now - $modified_time)) / 86400;
if( $days > $term_mod ){
echo '<span class="new2">更新</span>';
}
}

これで行けるのではないかと思います。
最初の変数の記述部分から3パートをつなげて書けばいいです。
※実際に試しているわけではないので、
細かい記述ミスなどは保証できませんが。
    • good
    • 0

更新日時を取得する場合は


get_the_time('U')
の部分を
get_the_modified_time('U')
に変えて、
表示する文字「New」は「更新」とする。
この回答への補足あり
    • good
    • 0

New</span>';


のとこを「更新」で良いのでは。

マークが出てるなら<span class="new">のとこのクラスで画像が指定されているはずです。
スタイルシートで"new"をさがしてください。
画像を差し替えるだけで良いかもですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報