解 説
wordpressの投稿や固定ページを作るときに使う「ビジュアルリッチエディター」は、デフォルトで改行コードなどを自動的に整形する設定になっています。これはwordpress内部の「 wpautop 」関数が行っている処理で、便利な反面、使い所によっては思うようなレイアウトにできない場合も多々あります。今回はこの「自動整形」を停止する方法についてご紹介します。
1まずビジュアルリッチエディターのデフォルト設定(自動整形機能)を理解する!
2ダッシュボードから自動整形機能を停止する方法
ダッシュボードの「ユーザー」から、「プロフィール」を選択して「ビジュアルリッチエディターを使用しない」にチェックを入れます。これでエディター画面が「テキストエディター」のみとなり、自動整形も反映されなくなります。但し「テキストエディター」ではhtmlマークアップを書いて文章を構成していく必要がありますので、htmlを理解している人向けの方法です。
3functions.phpから自動整形処理を停止する方法
//functions.php remove_filter(‘the_content’, ‘wpautop’); // 記事の自動整形を解除・無効にする remove_filter(‘the_excerpt’, ‘wpautop’); // 抜粋の自動整形を解除・無効にする
functions.phpファイルに上記コードを挿入すれば、全ての投稿フォーマットで自動整形処理を停止できます。
4固定ページのみ、投稿ページのみ自動整形処理を停止する方法
//固定ページの場合には、page.phpファイル //投稿ページの場合には、single.phpファイル に以下を記載します。 // の前に入れます //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; }
これで、固定ページだけ、もしくは投稿ページだけ指定して自動整形を停止することができます。
5最後にビジュアルエディター側の自動整形も停止する
//functions.phpに以下を記載します function override_mce_options( $init_array ) { $init_array['indent'] = true; $init_array['wpautop'] = false; return $init_array; } add_filter( 'tiny_mce_before_init', 'override_mce_options' );
これでビジュアルリッチエディター画面の自動整形表示を停止することができます。この設定だけを行うことはあまりなく、4までの設定でホームページ表示の自動整形を停止した後、より視覚的にビジュアルリッチエディターでレイアウトを整えたい場合に設定すると良いでしょう。
<ビジュアルリッチエディターの自動整形機能>
<br>
タグに変換<p>
タグを適用<p>
タグを適用以上の処理を自動的に行います。