WordPressの自動整形を完全に停止する方法
WordPressには記事を書いたときに、ソースタグを自動で整形する機能があります。
文章を投稿する際に2行以上の改行が入ると、自動的にPタグに変換する機能があります。この機能が、余計なお世話であったり、思わぬ誤変換につながる場合があります。
更に、例えば間違えて<p>内容<p>と書いた場合に自動で<p>内容</p>に直してくれます。
</div>タグを忘れた場合は、自動で</div>を追加してくれる便利な機能です。
しかし、予期せぬエラーや余計な自動整形で逆に変になったりします。特に、ソースコードが複雑になるほど間違った場合の自動整形が、ぐちゃぐちゃになり余計にわからなくなります。
この自動整形を完全に解除する方法を紹介します。
自動整形の停止
まず、自動的に<p>タグに変換する自動整形が不要な場合は、fanctions.phpに以下の設定を記入すると機能しないようになります。
1 2 3 4 5 6 7 8 9 10 11 |
// 自動整形停止 add_action('init', function() { remove_filter('the_excerpt', 'wpautop'); remove_filter('the_content', 'wpautop'); }); add_filter('tiny_mce_before_init', function($init) { $init['wpautop'] = false; $init['apply_source_formatting'] = ture; return $init; }); |
全体文章や抜粋文書などで<p>タグを忘れた際も自動で整形されることはありません。
概ね上記だけのfanctionsへの記入だけで充分効果があります。
テストとして、2chの複雑で間違ったソースタグと文章を使用して、投稿してみましたが自動整形されることは、ありませんでした。
ちなみに、上記の方法をしなかった場合、ソースタグは複雑に自動整形され、サイトの形が崩れて修正不可能になりました。やはり、複雑な文章を投稿するときは、自動整形を停止していた方が良いです。
完全に自動整形を停止
WordPressには<p>タグ以外にも自動整形される機能が備わっています。
- クォート(引用符)
- アポストロフィ
- ダッシュ
- 省略記号
これらの、自動整形が不要な場合は、以下の設定を記入します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// 自動整形停止 add_action('init', function() { remove_filter('the_content', 'wpautop'); remove_filter('the_excerpt', 'wpautop'); remove_filter('the_title', 'wptexturize'); remove_filter('the_content', 'wptexturize'); remove_filter('the_excerpt', 'wptexturize'); remove_filter('the_editor_content', 'wp_richedit_pre'); }); add_filter('tiny_mce_before_init', function($init) { $init['wpautop'] = false; $init['apply_source_formatting'] = ture; return $init; }); |
これで、ほぼ全ての自動変換が停止されて、自分自身の記入したhtmlがそのまま表示されます。自分で技術向上や間違いを見つけて修正する力を身につけるためにも、自動整形を停止する方が良いです。逆に、ミスを修正して余計な手間を省くのであれば、自働整形があった方が良いです。
ちなみに、タイトルの自動整形はあまりおすすめしません。
remove_filter(‘the_title’, ‘wpautop’);を設定しても、そもそも<p>タグで囲うことはありませんし、必要ないと思います。
remove_filter(‘sanitize_title’, ‘sanitize_title_with_dashes’);を設定すると、タイトルのタグの除去や変換を完全に止めることができます。しかし、日本語のパーマリンクを使った場合にエラーを起こすためお勧めしません。タイトルは、投稿画面で記入するだけですので、余計な自動整形はしない方が無難です。
まとめ
WordPressの自動挿入される<p>タグやタグの除去を自動整形させない方法を紹介しました。
以前、ブログを引越した際にWordPressに記事をインポートすることがありました。
この時、自動整形を停止していなかったため、文書もソースがぐちゃぐちゃに整形されて、<p>タグに<p>タグを囲むことや、不自然な位置で</div>タグが入ると言う厄介な状況になりました。
間違いに気づいたときには、引っ越しも終えて既に更新作業も進んでいたため、直すのに非常に時間が掛かったことがあります。
また、ビジュアルリッチエディターを使っている場合は、自動整形があると便利ですが、テキストエディタを使ってHTMLで記入している場合は、自動整形を停止している方が、余計な自動修正に悩まされずに良いです。