カスタム投稿タイプの記事URLに.htmlをつける方法

カスタム投稿タイプの記事URLに.htmlをつける方法

カスタム投稿タイプの記事URLに.htmlをつける方法

以前、固定ページの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を変更したくない場合などに使えるかと思います。

実際に、クライアントのサイトをリニューアルする際に結構使います。リニューアル時にリダイレクトをかけるのとどっちがいいんでしょうね。たぶん正解はないだろうから、好みの問題になってきそうですが・・・

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です