以前、固定ページのURLに.htmlをつける方法を紹介しましたが、今回はカスタム投稿タイプの記事ページに.htmlなどの拡張子をつける方法を紹介します。
プラグインを使って拡張子をつける
固定ページの時と同様に、プラグインを使うのが最も簡単な方法です。
Custom Post Type Permalinksをインストールして、パーマリンク設定で「/%postname%.html」のように設定すれば、URLに.htmlをつけることができます。
特に理由がない限り、Custom Post Type Permalinksを使う方が、メンテナンスも楽だと思います。
プラグインなしで拡張子をつける
プラグインなしでカスタム投稿タイプのURLに拡張子をつけるには、functions.phpに以下コードを追加します。
function rewrite_rules($rules) { $new_rules = array(); foreach (get_post_types() as $t) $new_rules[$t . '/(.+?)\.html$'] = 'index.php?post_type=' . $t . '&name=$matches[1]'; return $new_rules + $rules; } add_action('rewrite_rules_array', 'rewrite_rules'); function custom_post_permalink ($post_link) { global $post; $type = get_post_type($post->ID); return home_url() . '/' . $type . '/' . $post->post_name . '.html'; } add_filter('post_type_link', 'custom_post_permalink'); function remove_redirect_canonical($redirect_url) { return false; } add_filter('redirect_canonical', 'remove_redirect_canonical');
これで、カスタム投稿タイプのURLに.htmlが追加されます。
プラグインを使いたくない場合は、こちらの方法を参考にしてください。
あとがき
静的HTMLサイトからWordPressサイトへの移行時など、URLを変更したくない場合などに使えるかと思います。
実際に、クライアントのサイトをリニューアルする際に結構使います。リニューアル時にリダイレクトをかけるのとどっちがいいんでしょうね。たぶん正解はないだろうから、好みの問題になってきそうですが・・・