ワイヤード・パンチ

元・大阪人が、岡山の山奥でも生きていけることを証明するためのブログ。

WordPressでパーマリンク設定を途中で変更すると、投稿のURLに反映されないときの対処法。

とあるサイトにてWordpressのパーマリンクの設定を、「投稿名」にして運用を続けていました。

しかし、「投稿名」ではなく「数字ベース」にしてほしいと指示されてしまったので、設定を切り替えました。

ところが、パーマリンク設定を変更しても、各投稿のパーマリンクが「投稿名」のまま変わっていなかったのです。

広告

いろいろ対処法を試したものの…。

もともとはパーマリンク設定を「投稿名」にしていたので、投稿ページのURLも投稿記事のタイトルと同じものが入っています。

(例) https://wiredpunch.com/wordpress%E3%81%AEget_terms%E3%81%...(以下略)
当サイトで一つ前に投稿した記事のURLです。日本語タイトルなのでエンコードされています。

でも「数字ベース」に変えてほしいと言われ、「数字ベース」だと投稿記事のIDがURLになります。

(例) https://wiredpunch.com/hogehoge/archives/12345

上記のようになってほしかったので「数字ベース」に変えたのですが、なぜかそれでも投稿記事のURLは以前のまま、日本語が入ったURLのまま。

パーマリンク設定が反映されない件について調べてみるも、出てくるものはページが映らなくなったことについてばかり。

そうじゃなくて、投稿ページ自体は表示されています。

投稿ページのURLが変わってくれないのです。

とりあえず出てきた結果の中から、パーマリンク設定をいったん「基本」に戻してから「数字ベース」に変えてみたけど、効果なし。

パーマリンク設定はRewriteだかなんだか、そんなよくわからないワードも出てくるので、「Rewrite Rules Inspector」というプラグインも試してみたけど、効果なし。

標準投稿タイプではなくカスタム投稿タイプを使っているせいでしょうか?

また、「Custom Post Type UI」というプラグインでカスタム投稿タイプを追加しましたが、それも影響していたりするのでしょうか?

しかし、投稿タイプによる違いがあるのかどうかは、調べてもわかりませんでした。

もしかして、一度パーマリンク設定を決めたあとに運用し続けると、もう変えることはできないのでしょうか?

プラグインで解決。

残念ながら上記の現象が起こる原因そのものは不明のままで、なおかつプラグインなしで解決とはなりませんでした。

しかし、「Custom Post Type Permalinks」というプラグインを導入することで、無事に解決しました。

プラグインを導入してからパーマリンク設定の画面を開くと、上記写真のような設定項目が新たに追加されています。

テキストボックスに「/%post_id%/」と入力してから保存することで、IDをもとにしたパーマリンク設定が反映されるでしょう。

ただし、もとからあるパーマリンク設定を「数字ベース」にしていた場合、「/archives/」という余計な階層がURLに含まれており、外すことができません。

よって、いったん「投稿名」に切り替えて保存してから、プラグイン側の設定項目のテキストボックスを書き換えれば、余計な階層を含むことなく、IDをもとにしたURLに設定することができるでしょう。