
解説サイトなどをみて、新着記事に関しては以下の記述で「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>';
}
?>
No.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パートをつなげて書けばいいです。
※実際に試しているわけではないので、
細かい記述ミスなどは保証できませんが。
No.2
- 回答日時:
更新日時を取得する場合は
get_the_time('U')
の部分を
get_the_modified_time('U')
に変えて、
表示する文字「New」は「更新」とする。
No.1
- 回答日時:
New</span>';
のとこを「更新」で良いのでは。
マークが出てるなら<span class="new">のとこのクラスで画像が指定されているはずです。
スタイルシートで"new"をさがしてください。
画像を差し替えるだけで良いかもですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
composerをインストールしたい...
-
PHPのエラーの解消法について教...
-
PHP8でWarning:Undefined varia...
-
phpの問い合わせフォームを作っ...
-
phpのheader("Location:#pos")...
-
【初心者】XAMPPのapacheの(恐...
-
入力フォームの空白や改行を制...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
-
PHPからCSVをアップロード後、m...
-
[php初心者]サイトを見てデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
date関数を教えてください
-
質問:年月日の表示方法について
-
prologの引数
-
postgresのカレンダーについて
-
PHP+MySQLで月ごとの数量を表...
-
【PL/SQL】DATE型の時刻の表示...
-
countで0を返せますか?
-
EXCELマクロのSQL文での引用符...
-
Prologの現在時間の取得
-
UNIXの時間はどう変更すれ...
-
更新履歴を古い順に表示させる...
-
掲載日と更新日の管理の仕方
-
Smarty
-
dateのフィールドタイプについて
-
php mysql データ登録
-
現時刻とjson(オブジェクト形...
-
PHP5+MySQLで現在日時とDB内の...
-
PHPとMysqlを使用した集計表の...
-
DB登録に関する日付の認識
-
Strict Standards: date() ...
おすすめ情報
*上記のコードで新着記事に関してはNewマークを付け、併用する形で更新記事に関しては更新マークを付けたい感じです。
おそらくそれで表示自体はできるのですが、新着記事は「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>';
}
?>
*文字数の兼ね合いで分割して送付させていただきます
<?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つ併記すると後者が優先されてしまってる状況で、両方とも同時に使用したい場合はどうすればいいでしょうか。