サイト管理人Blog

cloudfreeで「さぁ始めましょう♪」

パーマリンクを途中変更、「変更日付と投稿名」→「投稿名」に

2023-10-29 記載
概要:WordPressのパーマリンクを途中変更するならSearch-Replace-DB-masterのRegex
Keyword : WordPress, Search-Replace-DB-master, 正規表現, Regex, パーマリンク

結論から書くと yyyy/mm/dd の Search-Replace-DB-masterでの正規表現は、
[0-9]{4}\\/[0-9]{2}\\/[0-9]{2}
となります。正規表現の文法で「スラッシュをエスケープするために円記号をつける」のですが、くわえてPHPの文法で「円記号を円記号でエスケープする」必要があるので、\\/ となります。
この壁を突破したら [0-9] を \\d としたりもご自由にどうぞ、となります。

さて、結論を書いてから経緯です。

WordPressのパーマリンク。
まずは試しと始めたときは、パーマリンクは「基本」のP=123が無難だなと思いつつも某サイトで「パーマリンクに投稿名をいれたほうがSEO的に有利!」という情報につられて「日付と投稿名」にしました。
数週間ほどして別の某サイトで「リンクに日付も入れてると記事をこまめに刷新しても古いままと思われてしまう」という意見を耳にして、なるほど「投稿名」だけがいいなと思いました。

WordPressの設定でパーマリンクの変更は「いつでも好きにどうぞ」的に切り替えられますが、投稿を蓄えてから切り替えると、一覧ページ的なところは切り替わるものの、投稿に埋め込んだ内部リンクまでは面倒見てくれず、あちこちがリンク切れしてえらい目にあいます。
(このあたり設定画面は注意喚起がちょっと不足しているように思います)

で、リンク切れを直すために「Xfreeからcloudfreeへのサーバー移行 (7/8)」で紹介した Search-Replace-DB-master の出番です。

まずはDBバックアップ。そしてパーマリンクを切り替えます。「日付と投稿名」→「投稿名」
表向きなところはだいたい変わります。しかし一部のリンクは日付込みなままです。

Search-Replace-DB-masterで use regex をチェック。
私の場合はこのWordPressを /public-html/journal/ に置いているので
journal\\/[0-9]{4}\\/[0-9]{2}\\/[0-9]{2}\\/

journal/
に置換。

/public-html/ 直下のかたなら (たぶん)
cfsid\\.cloudfree\\.jp\\/[0-9]{4}\\/[0-9]{2}\\/[0-9]{2}\\/

cfsid.cloudfree.jp/

で修正されるでしょう。
ちなみに私の場合 all tables を対象にして
wp_comments, wp_options, wp_posts
内においてほどほどな数が置換されました。

いつも思うのですが「正規表現 regexp」、難物ですが使いこなせたら強い助っ人ですね。

投稿へのコメントは コチラ(掲示板) へお願いします。

サイト管理人Blog