WordPress – パーマリンクに日付を入れると、single.phpが適応されない
2013-10-08
困った人も多いのではないでしょうか。
single.phpをアップして確認する際、一瞬「え???」ってなった経験があると思います。
/%category%/%year%/%monthnum%/%day%_%hour%
こんな感じでパーマリンクを設定すると、日付アーカイブ扱いになり、single.phpが無視されてしまいます。
そんな時は、functions.phpに
<?php add_action('parse_query', 'date_base_permalink'); function date_base_permalink($wp_query) { $q = (object)$wp_query->query_vars; // 年・月・日・時・分がURLに含まれていたら if (!empty($q->year) && !empty($q->monthnum) && !empty($q->day) && !empty($q->minute) || !empty($q->hour)) { // シングルページを有効にして $wp_query->is_single = true; // アーカイブページを無効にする $wp_query->is_archive = false; } }
と追記すれば、single.phpが無事適応されます。
私は、%hour%で止めてしまうことが多いので、
!empty($q->minute) || !empty($q->hour)
と、「&&」を「||」しています。
参考サイト様に感謝。