この投稿の内容は古いバージョンのものです。 WordPressで一括置換する必要が出てきたので、久しぶりにWordPressプラグインの「Search Regex」に触りました。 復習のために、前に書いた改行を置換する方法を見ていると、これは旧 ... 続きを見る
アップデート後のやり方はこちらにまとめてあります。
WordPressプラグイン「Search Regex」で改行を置換するには?
WordPressの投稿で改行に関する置換をやりたくなりました。
置換にはプラグイン「Search Regex」を使っています。
プラグイン自体の更新は止まっていますが、正規表現が使えるのがミソ。
今回は、改行に関する置換についてまとめてみました。
改行を置換する方法
「Regex」にチェックを入れ、「Search pattern」に下記のコードを入力します。
|\s\n|
「Search Regex」で正規表現を使うには「|(バーティカルバー)」で囲います。「|」は、うちのキーボードだと「Shift + ¥」で入力できました。
WordPressの改行は半角スペースが入る仕様なので、「\n」の前に「\s」を入れます。
改行へ置換する方法
これをするには、プラグインのカスタマイズが必要です。
「search-regex/searches/post_content.php」を編集します。
どうカスタマイズするの?
WordPressのダッシュボードからなら
- 「プラグイン ⇒ プラグインエディター」と進む
- 「編集するプラグインを選択:」で「Search Regex」を選び、「選択」ボタンを押す
- 「プラグインファイル」から「searches ⇒ post_content.php」を選ぶ
で、編集できます。
「post_content.php」の54行目あたりにある「function replace_content」が書き換えるコードです。
編集前↓
function replace_content ($id, $content)
{
global $wpdb;
$wpdb->query ($wpdb->prepare( "UPDATE {$wpdb->posts} SET post_content=%s WHERE ID=%d", $content, $id ) );
}
編集後↓
function replace_content ($id, $content)
{
global $wpdb;
$content = str_replace('"', '\"', $content);
$wpdb->query ( "UPDATE {$wpdb->posts} SET post_content=\"{$content}\" WHERE ID=\"{$id}\";" );
}
これで、改行へ置換することができるようになりました。
改行はどう書けばいいの?
「Replace pattern」に「\n」と書きます。「|(バーティカルバー)」で囲う必要はありません。
例えば、改行を1つから2つにしたい場合は、こんな感じに入力します。↓
私の場合は特定のHTMLタグの後に改行を入れたかったので、それと組み合わせて使いました。
注意
「Search Regex」を使って置換する場合は、必ずデーターベースのバックアップを取りましょう。
「Replace & Save ≫」を実行した後は、元に戻せません。
また、プラグインのカスタマイズを失敗したら、「Search Regex」を削除して、再度追加してください。
まとめ
改行に関する置換があっという間にできて、とても便利です。
実は、1回間違えた構文のまま、操作ミスで「Replace & Save ≫」を押してしまい、ひどい目に遭いました。
バックアップはお忘れなく。