Wordpress でオリジナルテーマを作っています。
footer.php に著作権の年度表示をしようと思い、以下のように記述しました。
<?php $oldest = get_posts( 'numberposts=1&orderby=post_date&order=ASC' ); ?>
<?php foreach( $oldest as $post ) : setup_postdata( $post ); endforeach; ?>
<?php $oldest = the_date( 'Y' ); $latest = date( 'Y' ); ?>
<?php if ( $oldest == $latest ) : echo $latest;
else : echo $oldest.'-'.$latest;
endif; ?>
最古記事の年を取得し、「最古記事年-最新記事年」というふうに出力します。
最古記事の年が最新記事の年と同じなら最新記事の年のみを出力、というようにしたかったのですが、
2008年や2009年の記事がある場合はちゃんと「2008-2010」と表示されるのですが、2010年の記事しかなかった場合「2010」とのみ表示されるはずが「2010-2010」となってしまいます。
どうか皆さんの知恵をお貸しください。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
Wordpressは使用したことがないので想像になってしまいますが・・・
the_date()というものを調べると、第4パラメータがtrueである場合はページに出力
falseである場合はPHPで使用できる値として日付を返す、とありました。
そしてデフォルト(指定なし)はtrueであるようです。
そのため
(1)<?php $oldest = the_date( 'Y' ); $latest = date( 'Y' ); ?>では
$oldestには何も設定されず、記事の年が出力される。
(2)<?php if ( $oldest == $latest ) : echo $latest;
else : echo $oldest.'-'.$latest;
endif; ?>
では、$oldestになにも設定されていないので必ず偽となり
「'-'.$latest」が出力される。
(1)と(2)の出力がくっついて「2008-2010」「2010-2010」となっているのではないでしょうか?
<?php $oldest = the_date( 'Y', '' ,'' , false ); $latest = date( 'Y' ); ?>と変更して確かめてみてください。
参考URL:http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3% …
うわわわわ X/
パラメータの記述忘れなんてお恥ずかしい限りでございます…!
ずっとforeachの位置とかいじってました…
duronさんのおかげでうまくいきました!ありがとうございます!
回答も予想以上に早く、感謝感謝です。:D
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
ob_end_clean と ob_clean の違...
-
PerlからPHPへ移行したときの注...
-
TCPDFについて
-
エクスプローラーでフォルダを...
-
PHPでの表示内容の切り替え
-
画像をDBに保存し、表示させ...
-
文字列を段落で分ける方法を教...
-
PHPで`headers already sent`と...
-
フォントの色を変えるには?
-
PHPのWARNINGをcatchするには
-
onedrive にexcelファイルをア...
-
PHP8を使うと、大量のWarningが...
-
バッチを用いたフォルダの自動移動
-
「クラス関数」「メンバ関数」...
-
index.phpって何ですか? 具体...
-
現在位置より2つ上のディレク...
-
透過PNGが透過されない!!
-
PHP 文字列を代入した配列を変...
-
PHPのif文でその処理を途中で抜...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPSpreadsheetによる書き出し...
-
文字列を段落で分ける方法を教...
-
phpにcssを適応させたい...
-
エクスプローラーでフォルダを...
-
TCPDFについて
-
PHPで取得したHTML内のdiv要素...
-
ob_end_clean と ob_clean の違...
-
JSON_UNESCAPED_UNICODEをつけ...
-
リダイレクト元のURLの取得方法...
-
phpexcelにてsubmitボタンを押...
-
phpで不思議な現象が起きるので...
-
変数名の前後に文字列を追加す...
-
PHPで`headers already sent`と...
-
phpでmysqlから画像パスを出力する
-
print出力での文字制限について
-
smarty foreach 半角スペース
-
imgタグでのphpの呼び出しについて
-
PHP/phpMyAdmin/データベースな...
-
【smarty】<A href="">内でのみ...
おすすめ情報