WordPressのパーマリンクを日付ベースにする方法
WordPressのパーマリンクを/YYYY/MM/DD/hhmmの様な日付ベースにしようとすると、日付アーカイブになってしまい記事単体のページとして認識されません。
秒まで設定(/YYYY/MM/DD/hhmmssなど)すれば記事単体のページとして認識されますが、微妙に長くなってしまうので見た目もちょっと・・・ですよね。
と言う訳で今回は、半ば強引にパーマリンクを日付ベースにしてみたいと思います。
日付ベースのパーマリンクを有効にするコード
以下のコードをテーマファイルの何処か(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;
}
}
あとは、パーマリンクの設定に/%year%/%monthnum%/%day%/%hour%%minute%
と入力すれば、パーマリンクが /YYYY/MM/DD/hhmm な形になります。簡単ですね。
テーマを変更しても日付ベースのパーマリンクを使いたい
上記のように、テーマファイルにコードを記述する方法では、テーマを変更した際にパーマリンクが無効になってしまいます。
そんな悩みも、コードをプラグイン化してしまえば解決です。
プラグインを作成
上記コードの最初に以下を追記し date_base_permalink.php など適当なファイル名で保存する。
<?php
/*
Plugin Name: DateBasePermalink
Description: 日付ベースのパーマリンクを有効にするプラグイン!
*/
プラグインを有効化
作成した date_base_permalink.php を wp-content/plugins/
に移動またはコピーして、管理画面からプラグインを有効化すれば完了。
プラグイン作成の練習感覚でやってみるのも良いと思います。