自動整形を無効化

自動整形を無効化するには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');
?>

「!(=エクスクラメーション・マーク)」を付けることで、“それ以外”という意味合いになります。

それぞれ「固定ページ以外のページで自動形成を無効化(=固定ページだけ有効化する)」、「詳細ページ以外のページで自動形成を無効化(=詳細ページだけ有効化する)」という条件に変わりました。

タイトルとURLをコピーしました