WordPress

WordPress:本文に<p>や<br>が自動で追加されないようにする方法(wpautop を無効にする)

投稿日:2018年1月30日 更新日:

1. WordPress の wpautop 関数

WordPress には wpautop という関数があります。

以下のような処理をしてくれる関数です。

  1. 第一引数として渡された文字列内で、空行で区切られた部分を1つの段落とみなし、その段落部分を <p></p> で囲んだ文字列に変換して返してくれます。
  2. 第二引数に true を指定しておくと、1の変換後に残っている改行文字を <br /> に変換しておいてくれます(デフォルトで true になっています)。

例えば、変換前の文字列が以下の場合は、

春が来た
どこに来た

山に来た

次のように変換されます。

<p>春が来た<br>
どこに来た</p>
<p>山に来た</p>

スポンサードリンク

2. WordPress は投稿や固定ページの本文に対して wpautop 関数を実行します

WordPress は投稿や固定ページの本文に対するフィルターとしてこの関数をセットしているため、何もしないとこの変換が実行される状態になっています。(厳密には「抜粋」に対しても適用しています)

参考:default-filters.php in tags/4.9.2/src/wp-includes – WordPress Trac

3. 本文に対する wpautop 関数を無効にする方法

投稿や固定ページの本文に対する apautop 関数を無効にするためには、functions.php に以下を記述して the_content フィルターフックからこの関数を取り除きます。

remove_filter( 'the_content', 'wpautop' );

「抜粋」に対する apautop 関数を無効にするためには、functions.php に以下を記述します。

remove_filter( 'the_excerpt', 'wpautop' );

4. 特定の固定ページに対してのみ wpautop 関数を無効にする方法

特定の固定ページに対してのみ wpautop 関数を無効にしたい場合は、wp_head アクションフックを使うとよさそうです。

wpautop 関数を無効にしたい固定ページの ID が、1, 2, 3 の場合は、functions.php に以下のように記述します。

add_action( 'wp_head', function() {
  if (is_page( array(1, 2, 3) )) {
      // 本文
      remove_filter('the_content', 'wpautop');
      // 抜粋
      remove_filter('the_excerpt', 'wpautop');
  }
});

5. 関連するソースコード

general-template.php in tags/4.9.2/src/wp-includes – WordPress Trac

  • wp_head 関数内で、wp_head アクションフックが実行されていることが分かります。

post-template.php in tags/4.9.2/src/wp-includes – WordPress Trac

  • the_content 関数内で the_content フィルターフックが実行されていることが分かります。

関連

WordPress

WSL + Homestead で WordPress のプラグイン開発環境を作る

2017.12.26
WordPress

WordPress プラグイン開発における多言語対応(gettextを利用する場合)

2018.01.15
WordPress

WordPress に関する srcset と sizes 属性値の簡単な説明

2017.12.28

スポンサードリンク



📂-WordPress
-,

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

WordPress

WordPress 5.3 のエディターで、カスタムHTMLのボックスをリサイズ可能にする

WordPress 5.3 のエディターで、カスタムHTMLのボックスをリサイズ可能にする方法について説明します。

WordPress

WordPressサイトの記事に表示した画像を観察する (Gutenberg)

WordPressサイトの記事に表示した画像を観察します。

WordPress

WordPress の機能を使って独自のPHPファイルにヘッダーとフッターを追加するサンプルページを作成しました

WordPress の持つ get_header(), get_footer() 関数を利用して、独自のPHPファイルにヘッダとフッターを表示するサンプルページを作成しました。 サンプルページのURL …

WordPress

JP Markdown と Classic Editor をやめ、Gutenberg を利用することにしました

JP Markdown と Classic Editor をやめ、Gutenberg を利用することにしました。かなり便利そうです。

WordPress

【WordPress】特定の画像には Easy FancyBox を適用させない方法

目次1. WordPress の Easy FancyBox プラグインについて問題点2. 特定の画像リンクで、Easy FancyBox を適用させない方法3. デモ 1. WordPress の …