投稿でpタグを挿入させない
2020-02-13
WordPressの投稿したページで、pタグが自動で挿入されたりする場合があります。
pタグが入ってしまうことで、想定外の部分に隙間でできていたり、レイアウトが崩れてしまうことがあると思いますが、[function.php]に下記のような記述を追加していくことで、pタグを挿入させないことができます。
1 2 3 4 5 |
// 記事(本文)の自動整形を無効にする remove_filter('the_content', 'wpautop'); // 抜粋の自動整形を無効にする remove_filter('the_excerpt', 'wpautop'); |
また、テンプレートファイルに記述することで個別に設定することもできます。
the_content(); と記述がある、その上に追記するだけです。
例)single.phpなどに直接記載
1 2 |
<?php remove_filter('the_content', 'wpautop'); ?> <?php the_content(); ?> |
固定ページ、カスタム投稿ページのみに反映
投稿ページや固定ページなど、状況によって適用させたい場合などがあるかと思いますが、[function.php]に下記を記載することで適用することができます。
6 – 11 行目の部分を書き換えなどして下さい。(一応、自己責任で)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 投稿ページのみに適用させる場合 add_filter('the_content', 'wpautop_filter', 9); function wpautop_filter($content) { global $post; $remove_filter = false; $arr_types = array('post'); // 適用させる投稿タイプを指定 /* 下記は、別の投稿ページの場合 */ // $arr_types = array('page'); // 固定ページのみに適用させる場合 // $arr_types = array('★カスタム投稿タイプ'); // カスタム投稿ページのみに適用させる場合 /* 複数のページに適用する場合 */ // $arr_types = array('★カスタム投稿タイプ1','★カスタム投稿タイプ2'); $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; } |
余談: spanタグの自動削除を無効化
内容によって、spanタグなどを記述させる場合があるかと思います。
ですが、Wordpressでは、コードエディターで記述した内容でもビジュアルエディターで修正したりするとspanタグが削除されてしまう場合があります。
その場合、下記を[function.php]に記述しておくと良いそうです。
1 2 3 4 5 6 |
function my_tiny_mce_before_init( $init_array ) { $init_array['valid_elements'] = '*[*]'; $init_array['extended_valid_elements'] = '*[*]'; return $init_array; } add_filter( 'tiny_mce_before_init' , 'my_tiny_mce_before_init' ); |