自動整形を無効化するにはfunctions.phpに記述する
functions.phpに次の形式で記述することで、自動整形を無効化することができます。
<?php
// 記事の自動整形を無効化
remove_filter('the_content', 'wpautop');
// 抜粋の自動整形を無効化
remove_filter('the_excerpt', 'wpautop');
?>
これで、テーマファイル内の”the_contetnt”、”the_excerpt”にあたる部分すべての自動整形が無効化されます。
部分的に自動整形を無効化・有効化することも可能
例えば、テーマファイル全体に適応させたいけど記事全体ではなく、「タイトルだけ無効化したい」「本文エリアだけ無効化したい」といったような場合はこちらの書き方で解決。
<?php
// タイトルの自動整形を無効化
remouve_filter('the_title', 'wpautop');
//本文エリアの自動整形を無効化
remove_filter('the_content', 'wpautop');
//コメント欄の自動整形を無効化
remove_filter('comment_text', 'wpautop');
//抜粋欄の自動整形を無効化
remove_filter('the_excerpt', 'wpautop');
?>
また、「固定ページだけ自動整形を無効化したい」などページごとに制限をかけたい場合はこちら。
<?php
function wpautop_disable_ispage() {
//固定ページだけ自動整形を無効化
if(is_page(){
// タイトルの自動整形を無効化
remouve_filter('the_title', 'wpautop');
//本文エリアの自動整形を無効化
remove_filter('the_content', 'wpautop');
}
}
add_action('wp','wpautop_disable_ispage');
?>
逆に、固定ページだけは自動整形を有効化したい場合は、 上記コードの4行目、11行目の部分を変更。
<?php
function wpautop_disable_ispage() {
//固定ページ以外のページの自動整形を無効化
if(!is_page(){
// タイトルの自動整形を無効化
remouve_filter('the_title', 'wpautop');
//本文エリアの自動整形を無効化
remove_filter('the_content', 'wpautop');
},
//詳細ページ以外のページの自動整形を無効化
if(!is_single(){
// タイトルの自動整形を無効化
remouve_filter('the_title', 'wpautop');
//本文エリアの自動整形を無効化
remove_filter('the_content', 'wpautop');
}
}
add_action('wp','wpautop_disable_ispage');
?>
「!(=エクスクラメーション・マーク)」を付けることで、“それ以外”という意味合いになります。
それぞれ「固定ページ以外のページで自動形成を無効化(=固定ページだけ有効化する)」、「詳細ページ以外のページで自動形成を無効化(=詳細ページだけ有効化する)」という条件に変わりました。