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

WP Cerber Security で「jQuery is not defined」エラーが発生した場合の対処法

WordPress のプラグイン「WP Cerber Security」で「Uncaught ReferenceError: jQuery is not defined」というエラーが発生した場合の対処法を紹介します。

WordPress

【WordPress】img タグに自動的に追加される属性について

WordPressの投稿ページに画像を貼った場合、その img タグに自動的に追加される属性について説明します。

WordPress

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

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

WordPress

All in One SEO Pack を使っている場合に、Search Console で noindex のエラーが発生する

All in One SEO Pack を使っている場合に、Search Console で noindex のエラーが発生した場合の対応方法について書きました。

WordPress

WordPress の管理バー(admin bar) が表示されない場合の対処法

WordPress サイトの管理バー(admin bar) が表示されない場合の対応方法について説明しています。