WordPressの記事のパーマリンクが変わってしまう事象があったのですが、原因と解決策がわかったのでお伝えします。
記事タイトルを変えて下書き保存するたびに変わってしまう
私の場合、パーマリンク設定で「投稿名」を選択しています。つまり、以下のようになる想定です。
https://webfood.info/sample-post/
ただ、記事タイトルを変更した後に、「下書き保存」を押すと、パーマリンクが変わってしまうのです。記事タイトルから自動変換された文字列になってしまいます。
「公開」を押して公開した後だと、いくら記事タイトルを変えて「更新」を押しても変わらず固定されます。
しかし、公開前であっても一度決めたパーマリンクは固定して欲しいので、コロコロ変わってしまうのは困ります。
スポンサーリンク
ズボラな私のパーマリンク入力が原因
私のパーマリンクの設定の仕方に問題がありました。
例えば、以下のようなパーマリンクしたい場合、
https://webfood.info/sample-post/
記事タイトルにまず
「sample post」
と入力して下書き保存すると、パーマリンクの欄に
sample-post
と設定してくれます。ハイフンを補ってくれるということです。
記事タイトルは、当然、公開時までにはきちんと日本語の文字列にしますが、最初に記事を書き始める時、なぜかパーマリンクの入力欄が表示されていません。
一度「下書き保存」をするとようやくパーマリンクの入力欄が出てきます。
なので、ズボラな私は「下書き保存」を押す回数を一度で済ませたいため、記事タイトルに予定しているパーマリンクのハイフンをスペースにした文字列を入れて「下書き保存」を押すという手順を採用していたのです。
次の記事で書いたように、記事のURLつまりパーマリンクは、SEO的に狙っている検索キーワードの英語訳を使います。なので、タイトルや本文を書く前に既に決まっているため、真っ先に入力したいためです。

ただ、パーマリンクが自動的に記事タイトルから生成された場合は、記事タイトルが変わる度に変わってしまうようです。
固定するには、パーマリンク欄の「編集」を押して入力し「OK」を押してから、「下書き保存」を押す必要があります。
つまり、自分でパーマリンク欄から入力した値は、固定値として使ってくれるということです。
ちなみに、先ほどの例のように、記事タイトルから自動生成された文字列と同じ値をパーマリンク欄から設定しても、自分で入力したとはみなされません。そりゃそうですよね。変更がなければ、入力とはみなされない仕組みになってるのは当然です。
まず記事タイトルにダミー文字列を入れて下書き保存で対処
対処法をご説明します。
最初にパーマリンク欄が表示されない時点では、記事タイトルに希望しているパーマリンクとは関係ないようなダミーの文字列を入れてから、「下書き保存」を押します。
すると、パーマリンク欄が表示され、希望していない文字列が生成されているので、これを希望する文字列に変えて、「下書き保存」を押します。
これで、パーマリンクの文字列は、記事タイトルを変えて「下書き保存」を押しても変更されません。
記事タイトルにまずダミーの文字列を入れるという一手間かかってしまいますが、後で意図せず変更されるよりはましです。
そもそも、新規投稿開始時に、最初からパーマリンク設定欄を表示してくれたら、こんな問題は起きないのにと思いますね。