WordPressのテーマや子テーマを導入したことでWordpress内の画像リンクパスなどが変更になることはありませんか?
固定ページや記事内のリンクを一括で変換する方法を記載します。
手順
WordPress内のリンクを手で修正すると作業の多さや修正漏れなどが発生しますが、一括置換を行うことで漏れなくあっという間に作業を完了させることができます。
WordPressの固定ページ、記事データはデータベースで管理させているのでSQLを使って一気に変換することができます。
手順は以下の通りです。
- 変更前後情報の整理
- DB接続
- 変更前の件数確認
- 変更SQL作成
- SQL実行
- 変更後の件数確認
- 画面確認
変更前後の情報整理
SQLを使って一括変更するため、変換前の情報整理は重要となります。
今回は例としてGodiosの子テーマパスからDiverの子テーマパスに変換します。
変更前:godios_child
変更後:diver-child
悪い例
変更前:abc.com/xyz/aaaa.jpg
変更後:abc.com/stu/aaaa.jpg
これは「xyz」を「stu」に変換することを目的としています。
その際に「xyz」を「stu」に変換すると、
abc.com/xyz-a/aaaa.jpg
も
abc.com/stu-a/aaaa.jpg
に変換され余計なパスまで変換します。「/」まで含めることで予期せぬ変換を避けることができます。
DB接続
WordPressのデータベースにphpMyAdminで接続します。
固定ページや投稿ページが東郎されているのは「wp_posts」となります。
変更箇所の確認(SQL)
まずは変更前の「godios_child」のテーマパスの数を調査します。
SELECT * FROM `wp_posts` WHERE post_content like '%/godios_child/%'
上記SQLを実行することで「wp_postsテーブルのpost_content項目に”/godios_child/”が含まれるデータを抽出する」という処理を実行します。
実行結果、265件の該当データがありました。
変更処理(SQL)
SQLを作成します。
UPDATE wp_posts SET post_content=REPLACE(post_content,"/godios-child/","/diver_child/");
UPDATE分にREPLACE関数を利用して文字列を置換します。
変更後の確認
実際に画面を開いて画像が正しく表示されていることを確認します。
まとめ
WordPressはデータベースで構築されています。
WordPressサイトを制作する場合はSQLを使ってデータベースを操作するスキルをもつことでよりWordpressの本質で作業が可能となり効率的にさぎょを進めることができるようになります。