WordPressのクラシックエディタには、自動整形機能が備わっています。文章を改行すると、自動的にpタグで囲まれたり、brタグが挿入される機能ですね。

便利な機能ではあるんですが、思い通りにレイアウトを調整したいときには少し厄介です。特にHTMLやCSSで細かく調整していると、意図しないタグが入ってデザインが崩れてしまうこともあります。

というわけで今回は、WordPressのエディタによる自動整形機能を無効化する方法をご紹介いたします。各コードも基本はコピペで利用できますので、ぜひ試してみてください。

WordPressテーマ「ISSUE」

洗練された採用サイトが誰でも簡単に作成できる。

ISSUE

設定画面から一括で無効化する

もっとも簡単なのは、設定画面でビジュアルエディタを無効化する方法です。自動整形機能が搭載されているビジュアルエディタ自体を無効化します。

設定箇所は、ユーザー > プロフィール内にあります。

「ビジュアルリッチエディターを使用しない」というチェックボックスがあるので、そこにチェックをいれればOKです。

注意点
この設定があるのは、WordPressのバージョン 6.7.2までです。WordPress 6.8では、「ビジュアルリッチエディターを使用しない」というチェックボックスは廃止されています。WordPress 6.8以降のバージョンをお使いの場合は、他の方法で無効化しましょう。

プラグインを使って無効化する

以前、当メディアでご紹介しているプラグイン「Toggle wpautop」を使って、簡単に自動整形機能を無効化できます。

ただし、このプラグインはメンテナンス・保守が停止しているようですので、利用しない方が賢明です。WordPress 6.8で検証したところ、動作自体は問題なさそうですが、セキュリティ面から利用はおすすめできません。

代替プラグインを探してみましたが、保守されていないものばかりでした。ブロックエディタ(Gutenberg)の標準化や、後述しているようなコードで簡単に対応できることが主な理由でしょう。

function.phpを編集する

自動整形機能の無効化は、各種コードをfunctions.phpに追加するだけで実現できます。記述例をいくつかご紹介いたします。テーマファイルを直接編集するのではなく、「Code Snippets」のようなプラグインを利用するのが安心・安全です。

ビジュアルエディタを無効化する

ビジュアルエディタ自体を無効化したいなら、以下を参照してください。

すべての投稿タイプに適用する

add_filter('user_can_richedit', '__return_false');

すべてのクラシックエディタの画面が、テキストモード固定になります。

特定の投稿タイプにのみ適用する

function disable_visual_editor_for_post_type($can_edit) {
if (is_singular('news')) {
return false;
}
return $can_edit;
}
add_filter('user_can_richedit', 'disable_visual_editor_for_post_type');

指定したカスタム投稿タイプ(news)でのみ、ビジュアルエディタを無効化している例です。

複数の投稿タイプに適用する

function disable_visual_editor_for_multiple_post_types($can) {
global $post;
$disabled_post_types = array('news', 'service');
if ($post && in_array($post->post_type, $disabled_post_types, true)) {
return false;
}
return $can;
}
add_filter('user_can_richedit', 'disable_visual_editor_for_multiple_post_types');

$disabled_typesに指定した複数の投稿タイプで、ビジュアルエディタを無効化できます。上記は、news、serviceという投稿タイプで無効化している例です。

固定ページに適用する

function disable_visual_editor_for_pages($can) {
global $post;
if ($post && $post->post_type === 'page') {
return false;
}
return $can;
}
add_filter('user_can_richedit', 'disable_visual_editor_for_pages');

固定ページだけビジュアルエディタを無効化している例です。投稿やカスタム投稿タイプには影響しません。

自動整形機能(wpautop)を無効化する

ビジュアルエディタはそのまま使いたいが、文章内で自動的に挿入されるpタグやbrタグだけを無効化したいときは、以下の方法を参考にしてください。

すべての投稿タイプに適用する

remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');

投稿本文(the_content)と抜粋(the_excerpt)を対象に、自動的なpタグやbrタグの挿入を無効化します。すべての投稿タイプに影響するため、手動で改行・段落処理を行う必要があります。

特定の投稿タイプにのみ適用する

function disable_wpautop_for_specific_post_type($content) {
if (get_post_type() === 'news') {
remove_filter('the_content', 'wpautop');
}
return $content;
}
add_filter('the_content', 'disable_wpautop_for_specific_post_type', 9);

指定した投稿タイプ(news)でのみ、wpautopを無効化している例です。

まとめ

WordPressのエディタの自動整形機能を無効化する方法をご紹介しました。

大きく分けて、ビジュアルエディタ自体を無効化するか、自動整形機能(wpautop)のみを無効化するかの2通りの方法があります。設定画面はWordPress 6.8以降で廃止されており、プラグインの多くは更新されていないため、functions.phpを編集する方法がおすすめです。

Code Snippets」のようなプラグインを使えば、テーマファイルを直接編集する必要がなく、初心者でも安心して設定できます。

世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「REHUB」
WordPressテーマ「REHUB」
クチコミ評価サイトがつくれる高機能テーマ。
WordPressテーマ「RIKYU」
WordPressテーマ「RIKYU」
あらゆるジャンルのネットショップを構築。
WordPressテーマ「GAIA」
WordPressテーマ「GAIA」
高機能なイベントカレンダーを搭載。
WordPressテーマ「HORIZON」
WordPressテーマ「HORIZON」
横スクロールデザインの個性派ギャラリー。