前提・実現したいこと
wordpressでサイトを制作しており、パーマリンクに関しての設定でうまくいかない部分があり困っております。
このサイトの投稿に関して、以下の2つを用意しており、それぞれのパーマリンクをきれいに実装したいです。
■ブログ
投稿(wordpress標準のもの)を使用。カテゴリがいくつかある。
パーマリンクは以下のようになってほしい。
・一覧ページ
https://hogehoge.co.jp/blog/
・一覧ページ(2ページ目以降)
https://hogehoge.co.jp/blog/page/2/
・カテゴリ一覧ページ
https://hogehoge.co.jp/blog/カテゴリ名/
・記事ページ
https://hogehoge.co.jp/blog/カテゴリ名/post_id/
■新着情報
CPT UIを使用してカスタム投稿として用意。
カスタムタクソノミーは特に使用しない。
パーマリンクは以下のようになってほしい。
・一覧ページ
https://hogehoge.co.jp/news/
・一覧ページ(2ページ目以降)
https://hogehoge.co.jp/news/page/2/
・記事ページ
https://hogehoge.co.jp/news/post_id/
発生している問題・エラーメッセージ
ブログのパーマリンクに関しては設定>パーマリンク設定からカスタム構造を選んで「/blog/%post_id%/」にしたのですが、そうするとカスタム投稿の新着情報にまで/blog/がついてしまい、「https://hogehoge.com/blog/news/%post_id%/」といった形になってしまいます。
試したこと
下記のページを参考にしました。
https://qiita.com/super-mana-chan/items/1e7105bb866607a5e6e1
新着情報はタクソノミーの追加はないので、以下の部分だけfunctions.phpに記述しました。
// ②リライトルールの変更 add_rewrite_rule( 'blog/([^/]+)/?$', 'index.php?category_name=$matches[1]', 'top' ); add_rewrite_rule( 'blog/([^/]+)/page/([0-9]+)/?$', 'index.php?category_name=$matches[1]&paged=$matches[2]', 'top' ); add_rewrite_rule( 'news/([^/]+)/?$', 'index.php?newscat=$matches[1]', 'top' ); add_rewrite_rule( 'news/([^/]+)/page/([0-9]+)/?$', 'index.php?newscat=$matches[1]&paged=$matches[2]', 'top' ); // デフォルトの投稿の記事詳細に`/blog/`(アーカイブ名)を追加する function add_article_post_permalink( $permalink ) { $permalink = '/blog' . $permalink; return $permalink; } add_filter( 'pre_post_link', 'add_article_post_permalink' );
上記を試してみましたが、ブログの方でカテゴリ一覧にアクセスすると「https://hogehoge.co.jp/カテゴリ名/post_id」の形になってしまいます。
パーマリンクをうまいことシンプルにする方法を知りたいです。
よろしくお願い致します。
あなたの回答
tips
プレビュー