プラグイン無しでカテゴリページのパーマリンクを以下のようにしたいです。
単純にパーマリンク設定の変更をすれば可能かと思ったのですが、
記事のパーマリンク設定をカスタム構造にしてしまっているせいか、希望のURLでは404ページが表示されてしまします。
詳しい情報を以下に記載いたします。
前提・実現したいこと
実現したいカテゴリページURL例)
https://example.com/category/javascript/
https://example.com/category/css/
https://example.com/category/html/
↓
https://example.com/javascript/
https://example.com/css/
https://example.com/html/
補足・設定状態など
パーマリンク設定
・カスタム構造「/article/%post_id%」
・カテゴリーベース「category」
現状の記事ページURL
・https://example.com/article/[記事ID] ※この記事URLは保ちたいです
試したこと
1. カテゴリーベースを「.」にする
→404ページが表示
https://example.com/javascript/ → 404
https://example.com/category/javascript/ → 404
https://example.com/article/javascript/ → 404
2. カテゴリーベースを「空欄」にする
→一部成功したが、希望のURLでは404ページが表示
https://example.com/javascript/ → 404
https://example.com/category/javascript/ → 404
https://example.com/article/javascript/ → 404
https://example.com/article/category/javascript/ → 表示に成功
3. 以下コードをfunctuins.phpに記述
→404ページが表示
https://example.com/javascript/ → 404
https://example.com/category/javascript/ → 404
https://example.com/article/javascript/ → 404
https://example.com/article/category/javascript → URLから「/category/」が消え?404
php
1function remcat_function($link) { 2return str_replace("/category/", "/", $link); 3} 4add_filter('user_trailingslashit', 'remcat_function'); 5function remcat_flush_rules() { 6global $wp_rewrite; 7$wp_rewrite->flush_rules(); 8} 9add_action('init', 'remcat_flush_rules'); 10function remcat_rewrite($wp_rewrite) { 11$new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2)); 12$wp_rewrite->rules = $new_rules + $wp_rewrite->rules; 13} 14add_filter('generate_rewrite_rules', 'remcat_rewrite');
以上です。足りない情報などありましたらお申し付けください。
どうかよろしくお願いいたします。
あなたの回答
tips
プレビュー