WordPressのエディターには自動変換機能が働いており、<p>や<br>タグなどの自動挿入や、記号の自動変換が行われている。場合によっては都合が悪いので、自動変換を無効化する。また、特定のページで自動変換を無効化する。
自動変換を行っている関数は、wpautopとwptexturize
自動整形機能の関数は、wp-includes/formatting.php
で定義されている。具体的にはwpautop
とwptexturize
という関数である。これらの関数を無効化すれば、自動変換を停止することができる。
wpautop
wpautop
は、<p>
や<br>
を自動挿入する関数。
無効にする関数
remove_filter('the_title', 'wpautop'); // タイトル
remove_filter('the_content', 'wpautop'); // 本文
remove_filter('comment_text', 'wpautop'); // コメント
remove_filter('the_excerpt', 'wpautop'); // 抜粋
wptexturize
ふつうの引用符をスマート引用符へ変えたり、特定の記号の並びをアポストロフィ、ダッシュ、省略符号(…)、商標記号、乗算記号などへ変えたりする関数。ダブルクォートが変換される原因。
無効にする関数
remove_filter('the_title', 'wptexturize'); // タイトル
remove_filter('the_content', 'wptexturize'); // 本文
remove_filter('comment_text', 'wptexturize'); // コメント
remove_filter('the_excerpt', 'wptexturize'); // 抜粋
変換例としてあげられるもの。関数リファレンス/wptexturizeより。

特定のページでwpautopを無効化する
function disable_page_wpautop() {
if ( is_page() ) remove_filter( 'the_content', 'wpautop' );
}
add_action( 'wp', 'disable_page_wpautop' );
メモ
ダブルクォートが変換されないように、タイトル、本文、コメント、抜粋の4箇所でwptexturizeを無効化した。
wpautopについては様子見とする。