WordPress で固定ページを作成しようと思い、コードを記述して表示を確認してみるとレイアウトが崩れている!! こんなことでお困りではありませんか?
これは、どうやら WordPress には、自動で <br>
や <p>
などが作成されてしまう機能があるからのようです。
この WordPress の自動整形を回避する方法をご紹介します。
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;
}
まとめ
実装が終わったら、レイアウトに崩れがないか必ずチェックをするようにしてくださいね!!