【WordPress】入力文字の自動変換無効化~wpautop、wptexturize~

WordPressのエディターには自動変換機能が働いており、<p>や<br>タグなどの自動挿入や、記号の自動変換が行われている。場合によっては都合が悪いので、自動変換を無効化する。また、特定のページで自動変換を無効化する。

自動変換を行っている関数は、wpautopとwptexturize

自動整形機能の関数は、wp-includes/formatting.phpで定義されている。具体的にはwpautopwptexturizeという関数である。これらの関数を無効化すれば、自動変換を停止することができる。

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については様子見とする。