
解説サイトなどをみて、新着記事に関しては以下の記述で「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で質問しましょう!
似たような質問が見つかりました
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/12/23 14:57
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/12/22 17:29
- PHP アンドロイドスマホでのphp echoの文字サイズ 1 2023/05/13 15:15
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELマクロのSQL文での引用符...
-
php mysql データ登録
-
【Wordpress/PHP】更新した記事...
-
MySQLからフィールド名のリスト...
-
UPDATE時にundefinedがセットさ...
-
レコードの選択の仕方
-
付録CDなどの動画をWMPで...
-
時間の判定条件
-
チェックボックスから得る値を...
-
エクセルでのソートについて
-
オープンオフィス
-
SQLだけでselect結果に定数を加...
-
myadminのインポートについて
-
GROUP BY使用時のソートについて
-
SQLについて
-
sql文について教えて下さい
-
Excel VBAのわかりやすい教科...
-
取り出したデータのソート方法
-
ファイルの漢数字の順番につい...
-
mysql について質問です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgresのカレンダーについて
-
PHP+MySQLで月ごとの数量を表...
-
掲載日と更新日の管理の仕方
-
配列の重複を削除後、削除分の...
-
複数のカテゴリを選択した上でL...
-
SQLでMAXを使った
-
データ更新用のphpの記述でデー...
-
PHPでMySQL内のデータの合計値...
-
【Wordpress/PHP】更新した記事...
-
UNIX時間で今月1日~末日を取得...
-
構造体のプログラミング......
-
日付で0を抜く
-
By moving its office to Calif...
-
EXCELマクロのSQL文での引用符...
-
preg_replace, ereg_replace
-
今日が6月か、9月か、12月...
-
MySQL + PHP 同じテーブル内で...
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
単一グループのグループ関数で...
おすすめ情報
*上記のコードで新着記事に関しては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つ併記すると後者が優先されてしまってる状況で、両方とも同時に使用したい場合はどうすればいいでしょうか。