WordPressでカエレバを使っていたら間が空くのでPタグ除去して解決した話

先日、記事を書いていたら、おかしな現象が発生。
商品リンクを貼っていた時です。

プレビューするとなぜか無駄な空間が空いてしまう↓
wordpress-p-tag-removal1

???
で、プレビュー後のページのソースを調べてみたら、pタグが勝手に挿入されていた↓
wordpress-p-tag-removal2

ところが記事投稿画面ではそんな段落は存在しない。
何度確認しても見当たらない。

(´・ω・`)そうか・・・これが世に言う「pタグ自動挿入の呪い」か・・・

以前から、ネットの記事でチラホラ見かけていたのですが、まあ僕には関係ないだろうと。タカをくくっていました。
でも、とうとう自分にも巡ってきたのですね。

なんだか少し手間そうだなーと思っていたので避けていたのですが、どうしようもなかったので、仕方なく対処することにしました。

でもやってみたら、思いのほか簡単だったよ!
(`・ω・´)bやってみるもんだ!

pタグ自動挿入とは

WordPressが余計なお世話・・・ゲフンゲフン、もとい、気を効かせてタグを自動整形してくれる機能です。機能の名前は「Auto paragraph」。

この機能が働くと、今回のように意図しない状況が発生することがあります。
その場合、手順を踏んで、機能を無効にする必要があります。

プラグイン「PS Disable Auto Formatting」は使うとまずい点がある

「pタグの自動挿入」についてネットで検索すると、プラグイン「PS Disable Auto Formatting」についての記事がよく表示されます。

ですが、ワードプレスのバージョン4.3以降では、このプラグインを使うと、確かにpタグは自動挿入されなくなるのですが、それとは別に、記事投稿画面でビジュアルエディターに切り替えることができなくなります。
つまりテキストエディターだけしか使えない。

それはさすがにきついので、プラグインで解決するのはあきらめまして。
PHPコードで解決する方法を試すことにしました。

PHPコードで無効にする手順

(1)Wordpressにログインして管理画面を表示します。

(2)左側メニューの[外観]→[テーマの編集]をクリックします。
wordpress-p-tag-removal3

(3)子テーマ(図ではSimplicity2 child)を選択した後、「テーマのための関数(functions.php)」をクリックします。
wordpress-p-tag-removal4

(4)欄内に、以下のPHPコードを貼りつけます。
このコードを貼りつけると、すべての記事でpタグが挿入されなくなります。
wordpress-p-tag-removal5

貼りつけるPHPのコードです↓
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;
});

(5)最後に[保存]をクリックすれば、手順は完了です。

あとがき

今回の手順を行うと、全記事でpタグが自動挿入されなくなります。
ですので、過去の記事がなんらかの影響を受けているかもしれません。

こんなんだったら最初からコードを入れておけばよかったのかも?

(´・ω・`)人生とは後悔の連続だ