WordPress で固定ページを作成しようと思い、コードを記述して表示を確認してみるとレイアウトが崩れている!! こんなことでお困りではありませんか?
これは、どうやら WordPress には、自動で <br>
や <p>
などが作成されてしまう機能があるからのようです。
この WordPress の自動整形を回避する方法をご紹介します。
WordPress の自動整形を回避する方法
全ての投稿に実装
全ての投稿の自動整形を回避する方法です。「functions.php」に記述するだけです。
remove_filter('the_content', 'wpautop'); // 記事の自動整形を無効にする remove_filter('the_excerpt', 'wpautop'); // 抜粋の自動整形を無効にする
テンプレートごとに実装
次に、上記のように『全ての投稿に実装』するのではなく、『固定ページのみに実装したい』という場合について説明します。
こちらの方法だと、クライアントさんがブログを投稿するのに使用する「single.php」にはそのまま自動整形機能を残す、ということができますね。
page.php(自動整形させたくないテンプレート)
<?php remove_filter ('the_content', 'wpautop'); ?> // <?php the_content(); ?>の前に入れる
下記のように functions.php で制御する方法もあります。
add_filter('the_content', 'wpautop_filter', 9); function wpautop_filter($content) { global $post; $remove_filter = false; $arr_types = array('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; }
まとめ
実装が終わったら、特に既存のブログの場合は、レイアウトに崩れがないかチェックを忘れないようにしましょう!!