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 をフレームワークとして利用する

目次1. はじめに2. WordPress をフレームワークとして利用する場合に便利な機能3. ブログでない Webサイトに WordPress を使う試み3-1. したいこと3-1-1. メインのコ …

WordPress

WordPressのマルチサイトでサイトを判別するPHPコード

WordPress では マルチサイトといって 1つのWordPress内に複数のサイトを作成する機能があります。(詳しくは、ネットワークの作成 – WordPress Codex 日本語 …

WordPress

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

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

WordPress

【WordPress】Table of Contents Plus が生成した目次の直前に、ウィジェット(広告など)を表示するコードを自分で書く

Table of Contents Plus (TOC+) という WordPressプラグインが生成した目次の直前に、ウィジェット を表示する方法について説明します。 ※ 2018年6月6日: 目次 …

WordPress の投稿記事に画像を貼る手順と sizes 属性値の変更

目次1. はじめに2. 事前の追加設定3. 投稿記事を作成する時に、画像を挿入する手順[メディアを追加] ボタンから画像を挿入4. 参考 1. はじめに この Webサイトは WordPress で作 …