質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

941閲覧

PHP 投稿から24時間~48時間のタイミングで要素を表示したい

nyanuko

総合スコア3

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/04/16 23:46

前提・実現したいこと

素人ながらWordpressのサイトを弄っています。
下記のソースにて、24時間以内では前者、24~48時間の間は後者の要素を表示させたいのですが、現状、併記すると後者が優先されています。色々と調べてはみましたが良く分からず…。お知恵を頂きたいです…。

該当のソースコード

<?php $days = 1; $now = date_i18n('U'); $entry = get_the_time('U'); $term = date('U',($now - $entry)) / 86400; if( $days > $term ){ echo '24時間以内に投稿'; } ?> <?php $days = 2; $now = date_i18n('U'); $entry = get_the_time('U'); $term = date('U',($now - $entry)) / 172800; if( $days > $term ){ echo '24~48時間以内に投稿'; } ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

コロン構文を利用しても実装可能かと思います。
例えば、以下のようなコードはいかがでしょうか?
2つの条件を1つのif文で表現する形になっております。質問者様のイメージはこちらに近いかもしれませんね。

PHP

1<?php 2$oneDay = 1; 3$twoDays = 2; 4$now = date_i18n('U'); 5$entry = get_the_time('U'); 6$term = date('U', ($now - $entry)) / 86400; 7if ($oneDay > $term): 8 echo '24時間以内に投稿'; 9?> 10 11<?php 12elseif ($twoDays > $term): 13 echo '24~48時間以内に投稿'; 14?> 15 16<?php 17endif; 18?>

コロン構文については、こちらを参考になさってください。
PHP: コロン構文(初心者向け)

投稿2021/04/17 15:22

AkitoTsukahara

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyanuko

2021/04/17 20:35

ありがとうございます!理想的な挙動でした!
guest

0

現状、併記すると後者が優先されています。

「優先される」ということがどういう状況なのかよく分からないですが、
2番目の if( $days > $term ) は、
「24~48時間以内」ではなく「~48時間」という判定かと思いますので、
「24時間より大きい」という条件が足らないだけではないでしょうか。

投稿2021/04/17 05:42

satokei

総合スコア1217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問