WordPress

Search Regexで改行”を”置換する方法、改行”へ”置換する方法

WordPressの投稿で改行に関する置換をやりたくなりました。
置換にはプラグイン「Search Regex」を使っています。
プラグイン自体の更新は止まっていますが、正規表現が使えるのがミソ。
今回は、改行に関する置換についてまとめてみました。

 

改行を置換する方法

「Regex」にチェックを入れ、「Search pattern」に下記のコードを入力します。

|\s\n|

実際に入れるとこんな感じ↓

「Search Regex」で正規表現を使うには「|(バーティカルバー)」で囲います。「|」は、うちのキーボードだと「Shift + ¥」で入力できました。
WordPressの改行は半角スペースが入る仕様なので、「\n」の前に「\s」を入れます。

 

改行へ置換する方法

これをするには、プラグインのカスタマイズが必要です
「search-regex/searches/post_content.php」を編集します。

 

どうカスタマイズするの?

WordPressのダッシュボードからなら

  1. 「プラグイン ⇒ プラグインエディター」と進む
  2. 「編集するプラグインを選択:」で「Search Regex」を選び、「選択」ボタンを押す
  3. 「プラグインファイル」から「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 ≫」を押してしまい、ひどい目に遭いました。
バックアップはお忘れなく。

-WordPress
-, , , , , ,