wordpressで文章が自動整形されるのを止める方法 wpautop

Yuki Tylar
2017年5月2日

wordpressで記事を書くと自動で文章がhtml形式で整形されます。これはwordpressのwpautopが機能しているからです。
これはこれですごく便利な機能なのですが、邪魔な時もあります。状況に応じてwpautopを無効にしましょう。

固定ページでwpautopを無効にする方法

下記コードをfunctions.phpに追記しましょう。

add_action( 'wp', 'disable_page_wpautop' );
function disable_page_wpautop() {
  if ( is_page() ) remove_filter( 'the_content', 'wpautop' );
}

カスタム投稿タイプのページでwpautopを無効にする方法

add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
  global $post;
  $remove_filter = false;

  $arr_types = array('works'); //自動整形を無効にする投稿タイプを記述
  $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;
}

固定ページとカスタム投稿タイプのページ全部でwpautopを無効にする方法

上記2つでしていることを1つの関数にまとめます。

add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
  global $post;
  $remove_filter = false;

  $arr_types = array('works', 'page'); //自動整形を無効にする投稿タイプを記述
  $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;
}

$array_typesの中にwpautopを無効化したい投稿タイプを複数書き込むだけでできちゃいます。

特定のショートコードの中だけwpautopを無効にする方法

ショートコードの中だけ自動整形を無効にする場合はこちら。



//ショートコードの実装
function doShortcode($attrs, $content){
  //do shortcode
}

add_filter('the_content', 'pre_process_shortcode', 7);
function pre_process_shortcode($content) {
  global $shortcode_tags;

  //(1)登録されているショートコードのバックアップをとって、それらを空にする
  $orig_shortcode_tags = $shortcode_tags;
  $shortcode_tags = array();

  //(2)wpautopを無効化したいショートコードを登録
  add_shortcode("code", doShortcode);

  //(3) (2)で登録したショートコードを実行
  $content = do_shortcode($content);

  //(4) (1)でバックアップをとって空にしたショートコードをもとに戻す
  $shortcode_tags = $orig_shortcode_tags;

  return $content;
}

まとめ

wordpressで記事の自動整形をしてくれるwpautopを状況に応じて無効にする方法についてまとめました。
この方法を使えば、固定ページやカスタム投稿タイプで無効にし、状況に応じてショートコードの中だけwpautopを無効にできます。

ウェブ開発へのお問い合わせはこちらから

ウェブサイトやアプリ開発をしております。
どんなものを作りたいのかを明記した上でお問い合わせをお願いします。
また、簡単な質問や要望も受け付けています。まずはお気軽にお問い合わせください。

  • 入力必須です。
  • 入力必須です。
  • メールアドレスの形式で入力してください。
  • 入力必須です。
OR

お問い合わせを送信しました。
24時間以内に返信させていただきますので、しばらくお待ちください。
お問い合わせありがとうございました。

送信に失敗しました。
何度も失敗するようでしたら、こちらからお問い合わせください。

こちらの記事もどうぞ

投稿はありません。

もう記事がありません

エラーが発生しました

もっと表示する