WordPress

wordpressの自動整形を無効化し改行や段落させない方法(pタグやbrタグ)

WordPressで記事を書いていると、保存したタイミングなどで勝手に<p>や<br>が挿入されてしまい、デザインが崩れてしまったり余白が大きく空いてしまい見た目が悪くなってしまう場合があります。

こちらの記事では、自動整形される原因についてと自動整形を無効化し改行や段落させない方法についてまとめています。

WordPressの学習におすすめ参考書
1冊ですべて身につくWordPress入門講座

本書情報
著者Mana
発売日2022/3/22
ページ数344ページ
Kindle版
レビュー
(Amazon)
(51件)

参考書が苦手な人はUdemyの動画がおすすめ
ちゃんと学ぶ、WordPress テーマ開発講座

動画情報
作成者たにぐち まこと
学習時間13.5時間
受講者数22,731人
レビュー (3,771件)
動画の詳細はこちら

自動整形される原因はwpautop()関数

自動整形されてしまう原因を調査したところ、formatting.phpファイルに記述されているwpautop()関数が原因であることが分かりました。

このwpautop()は、エディタで入力されたテキストに対して自動で<p>や<br>を挿入して調整する役割の関数です。

remove_filter()関数を使って自動整形を無効化しよう

wpautop()関数で自動整形されている場合でもremove_filter()関数を使うことで、自動整形を止めることができます。

remove_filter()関数を使って全てのページに適用させる場合と個別ページにのみ適用させる場合の2つをご紹介します。

全てのページに適用させる場合

全てのページに自動整形を無効化したい場合は、以下の形式をfunction.phpに記述します。
<?php
remove_filter('the_content', 'wpautop'); // 記事の自動整形を無効にする
remove_filter('the_excerpt', 'wpautop'); // 抜粋の自動整形を無効にする
?>

一部のページに適用させる場合

一部のページにのみ適用させたい場合は、以下の形式をfunction.phpに記述します。

注意点として、全てのページで自動整形を無効化する場合はソースコードをコピペするだけで良いのですが、一部のページにのみ適用させる場合は6行目に自動整形を無効にする投稿タイプを記述する必要があります。
add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
global $post;
$remove_filter = false;
 
$arr_types = array('〇〇〇'); //自動整形を無効にする投稿タイプを記述
$post_type = get_post_type( $post->ID );
if (in_array($post_type, $arr_types)) $remove_filter = true;
 
if ( $remove_filter ) {
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
}
 
return $content;
}

まとめ

今回はWordPressの自動整形を無効化し改行や段落させない方法について解説しました。

cssを使ってオリジナルのデザインを作成している人は、この自動整形を無効化させないとデザイン崩れが発生する原因になるので早めに対応しましょう。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村