WelcartにはCSVで商品情報を一括登録・更新出来る機能がありますが、カスタムフィールドの値にシングルクォーテーション・ダブルクォーテーションが利用されているものは登録することが出来ません。
今回、カスタムフィールドにシングルクォーテーションを含む商品情報をCSVからインポートする必要がありましたので方法を書いていきます。
エスケープ処理
CSVのインポートの前の準備としてシングルクォーテーションをエスケープするための置換処理をエディタ上で行いました。
シングルクォーテーションをエスケープ
B’z や L’Arc~en~Ciel などシングルクォーテーションを含むアーティスト名は以下のようにエスケープします。
B'z(ビーズ)→ B\'z(ビーズ)
L'Arc~en~Ciel(ラルクアンシエル)→ L\'Arc~en~Ciel(ラルクアンシエル)
アンエスケープ処理
エスケープした状態であればCSVからカスタムフィールドをインポート出来ますが、エスケープされたままの値になっていますので、アンエスケープする必要があります。
WP-CLIのコマンドで置換
以下、WP-CLIのコマンドでエスケープした文字をアンエスケープするために置換を実行しいます。
$ wp search-replace "B\'z" "B'z"
$ wp search-replace "L\'A" "L'A"
その他
WordPressプラグインの “Search Regex” や DB内を置換してくれるツールの “Search-Replace-DB” を利用して WP-CLIコマンドで行った内容と同じ置換処理を実行しても問題ありません。
動作環境情報
エックスサーバー(x10) PHP 7.3.14 MySQL 5.7 WordPress 5.4 Welcart e-Commerce 1.9.30
コメント